sql >> Database teknologi >  >> RDS >> Sqlserver

Opret beregnet kolonne ved hjælp af data fra en anden tabel

Du kan oprette en brugerdefineret funktion til det:

CREATE FUNCTION dbo.CountUses(@pictureId INT)
RETURNS INT
AS
  BEGIN
      RETURN
        (SELECT Count(id)
         FROM   PictureUse
         WHERE  PictureId = @PictureId)
  END 

Den beregnede kolonne kan derefter tilføjes på denne måde:

ALTER TABLE dbo.Picture
ADD NofUses AS dbo.CountUses(Id)

Jeg vil dog hellere lave et syn på dette:

CREATE VIEW PictureView
AS
  SELECT Picture.Id,
         PictureName,
         Picture.CreateDate,
         Count(PictureUse.Id) NofUses
  FROM   Picture
         JOIN PictureUse
           ON Picture.Id = PictureUse.PictureId
  GROUP  BY Picture.Id,
            PictureName,
            Picture.CreateDate 


  1. Matchende algoritme i SQL

  2. Sidste ord i en sætning:I SQL (regulære udtryk muligt?)

  3. ORA-00001 unik begrænsning overtrådt

  4. SQL Server 2008 kan ikke logge på med nyoprettet bruger