Lea*_*ing 4 sql oracle plsql pivot group-by
比方说,我有一个表ClientClde,就像这样:
ClientName , TradeDate , Quantity
Run Code Online (Sandbox Code Playgroud)
我想在Oracle PLSQL中创建一个查询,它应该返回如下结果:(天数来自TradeDate列,Mon = sum(数量)表示Mon,Tue = sum(Quantity)表示Tue ......等等. )
ClientName Mon Tue Wed Thu Fri Sat Sun TotalForWeek
ABC 10 15 5 2 4 0 0 34
XYZ 1 1 2 1 2 0 0 7
Run Code Online (Sandbox Code Playgroud)
假设此报告始终具有使其运行一周的条件,是否可以在单个查询中创建此报告?
只是简化一下......
SELECT ClientName,
SUM(CASE WHEN to_char(TradeDate,'DY')='MON' THEN Quantity ELSE NULL END) AS Mon,
SUM(CASE WHEN to_char(TradeDate,'DY')='TUE' THEN Quantity ELSE NULL END) AS Tue,
SUM(CASE WHEN to_char(TradeDate,'DY')='WED' THEN Quantity ELSE NULL END) AS Wed,
SUM(CASE WHEN to_char(TradeDate,'DY')='THU' THEN Quantity ELSE NULL END) AS Thu,
SUM(CASE WHEN to_char(TradeDate,'DY')='FRI' THEN Quantity ELSE NULL END) AS Fri,
SUM(CASE WHEN to_char(TradeDate,'DY')='SAT' THEN Quantity ELSE NULL END) AS Sat,
SUM(CASE WHEN to_char(TradeDate,'DY')='SUN' THEN Quantity ELSE NULL END) AS Sun,
SUM(Quantity) AS TotalForWeek
FROM ClientTrade
GROUP BY ClientName
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13797 次 |
| 最近记录: |