SQL Server: подсчитайте, сколько раз идентификатор из таблицы A встречается в таблице B без использования внешних объединений - PullRequest
2 голосов
/ 30 января 2012

Я спросил здесь о подсчете количества раз, когда значение из таблицы a встречается в таблице b, но после того, как оно было решено, я понял, что не могу использовать левое соединение (или правое, или внешнее), поскольку я собираюсь использовать результаты в индексированном представлении, которое не позволяет использовать эти объединения.

Итак, если эти ограничения применяются, есть ли способ сделать следующее?

У меня есть две таблицы: товары и заказы.Заказы ссылаются на продукты через ProductID в качестве внешнего ключа.Я хочу знать, сколько раз каждый продукт был продан, включая продукт, который никогда не был продан.

Есть ли способ решить эту проблему, в результате чего у вас получится нечто подобное?

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

1 Ответ

2 голосов
/ 30 января 2012

Прямого обходного пути нет - но вы можете создать индексированное представление для заказов (так, чтобы агрегаты вычислялись на нем и сохранялись в индексе), и иметь неиндексированное представление на основе объединения между продуктами и заказами.,Вы должны по-прежнему пользоваться индексом.

(вставьте обычные предостережения относительно использования NOEXPAND или работы в Enterprise / Developer Edition)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...