0
有誰知道我可以如何樞軸轉動這個查詢,以便Manufacturer.name是列,行是月份,它們是在子查詢中計算的。SQL Server樞軸問題
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
非常感謝。
嗨,這真是咕!唯一的問題是數量*價格的ISNULL不起作用 - 它仍然返回NULL。它不是世界的盡頭,如果它不能實現,但它會很好。 – Adam92 2014-12-19 11:20:47