SQL Server:计算表A中的ID出现在表B中的次数,而不使用外部联接

时间:2012-01-30 17:30:08

标签: sql sql-server join indexed-view

我问here有关计算表a中某个值出现的次数,但在解决之后,我意识到我无法使用左连接(或右或外)因为我将在索引视图中使用结果,这不允许使用这些连接。

那么,如果这些限制适用,有没有办法做到以下几点?

我有两张桌子:产品和订单。订单通过ProductID引用产品作为外键。我想知道每种产品的销售次数,包括从未销售过的产品。

有没有办法解决这个问题会让你最终得到这样的东西?

Product | Times sold
Milk    | 5
Bread   | 18
Cheese  | 0

1 个答案:

答案 0 :(得分:2)

没有直接的解决方法 - 但您可以在Orders上构建索引视图(以便在其上计算聚合,并将其存储在索引中),并根据产品和订单之间的连接创建非索引视图。您仍然可以从索引中受益。

(插入常见警告:使用NOEXPAND,或使用Enterprise / Developer Edition)