PLSQL:在一个查询中获取一周中每一天的总和和一周的总和

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)

假设此报告始终具有使其运行一周的条件,是否可以在单个查询中创建此报告?

Jef*_*emp 6

只是简化一下......

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)