sql >> Databáze >  >> RDS >> Sqlserver

Vytvořte vypočítaný sloupec pomocí dat z jiné tabulky

Pro to můžete vytvořit uživatelsky definovanou funkci:

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

Vypočítaný sloupec pak lze přidat takto:

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

Nicméně bych raději udělal pohled na toto:

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. Z uložené procedury vraťte parametr OUT a kurzor OUT a výsledek analýzy (Oracle)

  2. MariaDB CHARACTER_LENGTH() Vysvětleno

  3. Jak získat aktuální hodnotu věštecké sekvence bez jejího zvýšení?

  4. Je možné použít Full Text Search (FTS) s LINQ?