2015-12-21 52 views
-3

我有一个表的 '订单',如下所示:SQL Query显示所有产品的总销售额,相互之间相邻的01-JUL-11和02-JUL-11?

Order_Day Order_id Product_id Qty  Price 
01-JUL-11 01   P1  5  5 
01-JUL-11 02   P2  2  10 
01-JUL-11 03   P3  10  25 
01-JUL-11 04   P1  20  5 
02-JUL-11 05   P3  5  25 
02-JUL-11 06   P4  6  20 
02-JUL-11 07   P1  2  5 
02-JUL-11 08   P5  1  50 
02-JUL-11 09   P6  2  50 
02-JUL-11 10   P2  4  10 

任何人都可以提供一个SQL查询来获取所需的输出如下:

Product_Id  Sales on 01-JUL-11   Sales on 02-JUL-11 
P1      125      10 
P2      20      40 
P3      250      125 
P4       0      120 
P5       0      50 
P6       0      100 
+0

到目前为止您尝试过什么?这是简单的'sum(qty * price)按order_day,product_id' + pivot分组。 – lad2025

+0

感谢您的建议.. :) –

回答

0

使用MySQL的sumif

select Product_Id 
SUM(IF(Order_Day = "01-JUL-11", qty*price, 0)) AS 'Sales on 01-JUL-11', 
SUM(IF(Order_Day = "02-JUL-11", qty*price, 0)) AS 'Sales on 02-JUL-11' 
From Orders 
Group by product_id 
+1

谢谢Rahautos。它为我工作。 :) –

0

SELECT * FROM (SELECT PRD_ID ,数量,价格 ,ORDER_DAY FROM令) PIVOT (总和(数量*价格)TOTAL_SALES FOR ORDER_DAY IN('01 -JUL-2011' , '02-JUL-2011')) ORDER BY PRD_ID;

相关问题