#sql #grid #pivot #pivot-without-aggregate
#sql #сетка #сводная #сводный-без-агрегата
Вопрос:
Я пытаюсь написать запрос для отображения в элементе управления данными.
У меня возникли некоторые проблемы при попытке получить нужный мне запрос.
Я хочу, чтобы сетка отображалась:
product name dealer 1 dealer 2 dealer 3 dealer 4, etc <br/>
product a 10 12 18 N/A <br/>
product b 32 N/A 7 4 <br/>
product c 35 36 21 18 <br/>
Таблицы базы данных:
products
id, name
dealers
id, name
products_to_dealers_xref
product_id, dealer_id, qty
Я не могу понять, как заставить запрос компоноваться таким образом.
В настоящее время я пытаюсь использовать оператор UNION, но все еще не могу его получить.
Есть мысли или идеи?
Спасибо!
Ответ №1:
Вам необходимо преобразовать результаты запроса с помощью оператора PIVOT
select Products.Name,'dealer 1','dealer 2','dealer 3','dealer 4'
from
( select Products.Name,qty from products inner join products_to_dealers_xref pd on Products.id = pd.product_id inner join dealers d on Products.Id = d.id) as p
Pivot
(sum(qty) for products.name in (['dealer 1'],['dealer 2'],['dealer 3'],['dealer 4'])) as pvt
P. S.: не проверено.
Комментарии:
1. пришлось кое-что изменить, но стержень сработал. Спасибо.