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