【发布时间】:2017-08-02 13:04:26
【问题描述】:
我不仅要汇总一组数据的主要分组,还要汇总下一个分组级别。就我而言,ROLLUP 汇总了一个月的值(行),但我也想汇总销售代表的值(列)。
http://sqlfiddle.com/#!9/60608/1
我迄今为止的最大努力:
CREATE TABLE IF NOT EXISTS SALES (
Month INT(3),
Rep CHAR(60),
Val DECIMAL (20 , 6 )
);
INSERT INTO SALES (Month, Rep, Val) VALUES
('9','Rep1',10),
('9','Rep1',20),
('9','Rep2',20),
('9','Rep2',30),
('9','Rep2',40),
('10','Rep1',50),
('10','Rep1',60),
('10','Rep2',70),
('11','Rep2',80);
SELECT Month, IFNULL(Rep, 'Total'), SUM(Val) As TotalValue
FROM SALES
GROUP BY FIELD(Month,
'9',
'10',
'11') ASC, Rep WITH ROLLUP
产生以下内容
9 Rep1 30
9 Rep2 90
9 Total 120
10 Rep1 110
10 Rep2 70
10 Total 180
11 Rep2 80
11 Total 80
11 Total 380
理想情况下我希望它显示
9 Rep1 30
9 Rep2 90
9 Total 120
10 Rep1 110
10 Rep2 70
10 Total 180
11 Rep2 80
11 Total 80
11 Total 380
0 Rep1 140
0 Rep2 240
【问题讨论】:
-
认真考虑存储日期或整数月份
-
将月份更改为日期/整数月份会导致解决方案吗?
-
谁知道 ;-)。可能。
-
我已经编辑了这个问题,我仍然不聪明