sql >> データベース >  >> RDS >> Sqlserver

別のテーブルのデータを使用して計算列を作成する

    そのためのユーザー定義関数を作成できます:

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

    計算された列は、次のように追加できます。

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

    しかし、私はむしろこれについての見解を示したいと思います:

    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. ClusterControl CMON HA for Distributed Database High Availability-パート2(GUIアクセスセットアップ)

    2. どうすれば次のようなことができますか:USE @databaseName

    3. データ型、NOT NULL、およびPRIMARYKEY制約とともにテーブル内の列のリストを取得するSQLサーバークエリ

    4. PostgreSQLCreateExtensionを使用した新しいモジュールの作成