带有子查询的SQL持久化计算列



我有三个表

表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。

如果您想保留该信息,可以创建一个由计算值和ItemID组成的索引视图。显然,这不会是原始表中的一列。然后,您可以在需要信息时加入此视图。

就我个人而言,我可能会在你需要的时候直接执行。如果你关心性能,请在这里发布执行计划,我们可能会提出一些建议。

最新更新