0

私は3つのテーブルを持っています

表 1:項目

ItemID | DaysLastSold

表 2:リスト

ItemID | ListingID

表 3:売上高

ListingID | DateItemClosed

私はこのクエリを機能させました:

SELECT min(DATEDIFF(day, DateItemClosed, getdate())) as DaysLastSold 
    from Sales 
    where QtySold > 0 
        and ListingID in (SELECT ListingID from Listings where ItemID = 8101 )

私がやろうとしているのは、基本的に、このクエリを Items テーブルの DaysLastSold 列に配置することです。そのため、列が選択されるたびに、隣接する列の ItemID を使用して DaysLastSold が再計算されます。

4

1 に答える 1

0

その情報を保持したい場合は、計算された値と ItemID で構成されるインデックス付きビューを作成できます。明らかに、これは元のテーブルの列ではありません。情報が必要なときに、このビューに参加できます。

個人的には、必要なときにインラインで行うだけです。パフォーマンスが気になる場合は、実行計画をここに投稿してください。いくつかの提案を行うことができる場合があります。

于 2012-08-31T20:35:30.290 に答える