比方说有一组数据
产品编号 数量 拥有者
1 10 A
1 10 B
1 10 C
2 5 A
2 5 B
select后的效果是
产品编号 数量 拥有者
1 10 A
1 10 B
1 10 C
30
2 5 A
2 5 B
10
不要用union那种
我只有这么点分数了
------解决方案--------------------
- SQL code
CREATE TABLE T(A INT, B INT, C VARCHAR2(4));INSERT INTO T VALUES (1, 10, 'A');INSERT INTO T VALUES (1, 10, 'B');INSERT INTO T VALUES (1, 10, 'C');INSERT INTO T VALUES (2, 5, 'A');INSERT INTO T VALUES (2, 5, 'B');SELECT DECODE(GROUPING(A), 1, NULL, B) A, DECODE(GROUPING(B), 1, SUM(B), B) B, C FROM T GROUP BY ROLLUP(A, (B, C)) HAVING GROUPING_id(a,B)<>3 ;返回:10 10 A10 10 B10 10 C 30 5 5 A5 5 B 10