0
Кто-нибудь знает, как я могу повернуть этот запрос так, чтобы имя производителя было столбцами, а строки - месяцами, которые вычисляются в подзапросах.SQL Server Pivot Trouble
SELECT Manufacturer.manufacturer_id
,Manufacturer.name
,(SELECT ISNULL(SUM(SalesOrderLineItem.price*SalesOrderLineItem.quantity), 0)
FROM SalesOrderLineItem
INNER JOIN Products
ON SalesOrderLineItem.product_id = Products.product_id
INNER JOIN SalesOrder
ON SalesOrderLineItem.order_id = SalesOrder.sales_order_id
INNER JOIN Client
ON SalesOrder.client_id = Client.client_id
WHERE products.manufacturer_id = Manufacturer.manufacturer_id
AND Client.client_id = '224'
AND SalesOrder.order_placed BETWEEN '2014-09-01 00:00:00' AND '2014-09-30 23:59:00') AS 'sep-14'
,(SELECT ISNULL(SUM(SalesOrderLineItem.price*SalesOrderLineItem.quantity), 0)
FROM SalesOrderLineItem
INNER JOIN Products
ON SalesOrderLineItem.product_id = Products.product_id
INNER JOIN SalesOrder
ON SalesOrderLineItem.order_id = SalesOrder.sales_order_id
INNER JOIN Client
ON SalesOrder.client_id = Client.client_id
WHERE products.manufacturer_id = Manufacturer.manufacturer_id
AND Client.client_id = '224'
AND SalesOrder.order_placed BETWEEN '2014-10-01 00:00:00' AND '2014-10-31 23:59:00') AS 'oct-14'
,(SELECT ISNULL(SUM(SalesOrderLineItem.price*SalesOrderLineItem.quantity), 0)
FROM SalesOrderLineItem
INNER JOIN Products
ON SalesOrderLineItem.product_id = Products.product_id
INNER JOIN SalesOrder
ON SalesOrderLineItem.order_id = SalesOrder.sales_order_id
INNER JOIN Client ON SalesOrder.client_id = Client.client_id
WHERE products.manufacturer_id = Manufacturer.manufacturer_id
AND Client.client_id = '224'
AND SalesOrder.order_placed BETWEEN '2014-11-01 00:00:00' AND '2014-11-30 23:59:00') AS 'nov-14'
,(SELECT ISNULL(SUM(SalesOrderLineItem.price*SalesOrderLineItem.quantity), 0)
FROM SalesOrderLineItem
INNER JOIN Products
ON SalesOrderLineItem.product_id = Products.product_id
INNER JOIN SalesOrder
ON SalesOrderLineItem.order_id = SalesOrder.sales_order_id
INNER JOIN Client
ON SalesOrder.client_id = Client.client_id
WHERE products.manufacturer_id = Manufacturer.manufacturer_id
AND Client.client_id = '224'
AND SalesOrder.order_placed BETWEEN '2014-12-01 00:00:00' AND '2014-12-31 23:59:00') AS 'dec-14'
FROM Manufacturer
Большое спасибо.
Привет, это действительно goo! Единственное, что есть ISNULL для количества * цена не работает - он все равно возвращает NULL. Это не конец света, если он не может быть достигнут, но это было бы хорошо. – Adam92