0

そのため、テーブルに別のテーブルのすべての「ショップ」の数であるフィールドが必要であることに気付きました。したがって、テーブルは Centre_Name、Location、および Shop_Count で構成されている必要があります。既にテーブルを作成していますが、そのようなフィールドを追加するにはどうすればよいですか?

他のテーブルでショップが追加または削除されると、フィールドも明らかに更新されます。また、各ショップには対応する Centre_Name があります。

テーブルは SQL Server Express データベースにあり、Visual Studio の MVC 4 プロジェクトにリンクされています。

ありがとう!

4

1 に答える 1

2

これはかなり重い非正規化ですが、カウントを取得する関数を作成し、その関数を計算列の一部として使用できます。参照:別のテーブルを参照する計算列を定義する

だからあなたはしたいでしょう:

CREATE FUNCTION dbo.CountShops (@Centre_Name VARCHAR[x])
RETURNS INT 
AS BEGIN
    DECLARE @ShopCount INT

    SELECT @ShopCount = COUNT(*) FROM dbo.Shops WHERE Centre_Name = @Centre_Name

    RETURN @ShopCount
END

そして、それを列の一部として呼び出します。

ALTER TABLE dbo.Shops
ADD Shop_Count AS dbo.CountShops(Centre_Name) 

...これは、Centre_Name がショップを数えているものの定義属性であると仮定しています。何を基準にショップを数えていますか?ショップ テーブルの行をカウントするだけの場合は、パラメーターを削除して次のようにすることができます。

CREATE FUNCTION dbo.CountShops ()
    RETURNS INT 
    AS BEGIN
        DECLARE @ShopCount INT

        SELECT @ShopCount = COUNT(*) FROM dbo.Shops

        RETURN @ShopCount
    END

計算列の詳細については、こちらを参照してください。

于 2013-03-24T21:22:17.427 に答える