请高手帮忙修改提供的SQL实现相应的功能,谢谢 建表t和数据: CREATE TABLE TEST ( CALLINGNUM VARCHAR2(20 BYTE) NOT NULL, CALLEDNUM VARCHAR2(20 BYTE) NOT NULL, CONCOST NUMBER NOT NULL )
Insert into TEST (CALLINGNUM, CALLEDNUM, CONCOST) Values ('0664196', '10086', 2); Insert into TEST (CALLINGNUM, CALLEDNUM, CONCOST) Values ('0664196', '10086', 1.8); Insert into TEST (CALLINGNUM, CALLEDNUM, CONCOST) Values ('0664196', '10086', 0.2); Insert into TEST (CALLINGNUM, CALLEDNUM, CONCOST) Values ('0664196', '10086', 0.6); Insert into TEST (CALLINGNUM, CALLEDNUM, CONCOST) Values ('0664196', '10086', 0.8); ----------------------------------------------- select ti.*, case when substr(ti.callednum,1,2) <> '00' and substr(ti.callednum,1,3) <> '100' then sum(ti.concost) over (partition by ti.callingnum order by ti.callednum) else 0 end leijia from test ti where CALLINGNUM='0664196' and CALLEDNUM='10086' ------------------------------------------------- 修改如上SQL实现如下SQL实现的效果(主要是有CASE WHEN条件,所以不清楚该如何修改): ------------------------------------------------- select callingnum,callednum,sum(concost) from test where CALLINGNUM='0664196' and CALLEDNUM='10086' group by callingnum,callednum ------解决方案--------------------