SQL-запрос к сетке из нескольких таблиц

#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. пришлось кое-что изменить, но стержень сработал. Спасибо.