SQL code方法如下:
DROP TABLE test;
create table test
(a char(13),
b char(10),
c number,
d date
);
insert into test values('1010101010018', '需求量', 0 , to_date('2008-8-6','YYYY-MM-DD'));
insert into test values('1010101010018', '需求量', 12 , to_date('2008-8-7','YYYY-MM-DD'));
insert into test values('1010101010018', '需求量', 0 , to_date('2008-8-15','YYYY-MM-DD'));
insert into test values('1010101010018', '需求量', 60 , to_date('2008-8-19','YYYY-MM-DD'));
insert into test values('1010101010018', '采购订单', 10 , to_date('2008-8-6','YYYY-MM-DD'));
insert into test values('1010101010018', '采购订单', 10 , to_date('2008-8-8','YYYY-MM-DD'));
insert into test values('1010101010018', '采购订单', 30 , to_date('2008-8-17','YYYY-MM-DD'));
insert into test values('1010101010018', '采购申请', 2 , to_date('2008-8-6','YYYY-MM-DD'));
insert into test values('1010101010018', '采购申请', 50 , to_date('2008-8-11','YYYY-MM-DD'));
insert into test values('1010101010018', '采购申请', 50 , to_date('2008-8-20','YYYY-MM-DD'));
COMMIT;
SELECT A,
B,
SUM(C),
DECODE(MOD(TRUNC(D) - TRUNC(SYSDATE), 7),
0,
D,
TRUNC(SYSDATE) + 7 * (CEIL((TRUNC(D) - TRUNC(SYSDATE)) / 7))) X
FROM TEST
GROUP BY A,
B,
DECODE(MOD(TRUNC(D) - TRUNC(SYSDATE), 7),
0,
D,
TRUNC(SYSDATE) +
7 * (CEIL((TRUNC(D) - TRUNC(SYSDATE)) / 7)))
ORDER BY 1, 2, 4, 3;
输出:
1010101010018 采购订单 10 2008-08-06
1010101010018 采购订单 10 2008-08-13
1010101010018 采购订单 30 2008-08-20
1010101010018 采购申请 2 2008-08-06
1010101010018 采购申请 50 2008-08-13
1010101010018 采购申请 50 2008-08-20
1010101010018 需求量 0 2008-08-06
1010101010018 需求量 12 2008-08-13
1010101010018 需求量 60 2008-08-20