CREATE TABLE TS_MATERIALS--套餐资费
(
MAID INTEGER NOT NULL,
MANAME VARCHAR2(100 BYTE) NOT NULL,
PRICES NUMBER(5,2) NOT NULL,--套餐价格
CHARGESLOCAL NUMBER(3,2) NOT NULL,--本地通话费用
CHARGESLONG NUMBER(3,2) NOT NULL,--长途通话费用
ARULES INTEGER,--本地免费通话时长
REMARK VARCHAR2(500 BYTE)
)
Insert into TS_MATERIALS Values (9, '80元套餐', 80, 0.08, 0.15, 50);
Insert into TS_MATERIALS Values (7, '50元套餐', 50, 0.08, 0.15, 50);
Insert into TS_MATERIALS Values (8, '100元套餐', 100, 0.08, 0.15, 50);
Insert into TS_MATERIALS Values (6, '66元套餐', 66, 0.08, 0.15, 50);
COMMIT;
CREATE TABLE TS_INVENTORY--通话记录
(
ID INTEGER NOT NULL,
EXTENNUM VARCHAR2(20 BYTE) NOT NULL,
BILLEDTYPE VARCHAR2(20 BYTE) NOT NULL,
CALLINGNUM VARCHAR2(20 BYTE) NOT NULL,--主叫号码
CALLEDNUM VARCHAR2(20 BYTE) NOT NULL,--被叫号码
STARTTIME DATE NOT NULL,--通话开始时间
ENDTIME DATE NOT NULL,--通话结束时间
CONTIME INTEGER NOT NULL,--通话时长
CONCOST NUMBER NOT NULL,--通话费用
MAID INTEGER NOT NULL--套餐ID
)
Insert into TS_INVENTORY Values (1987, '000', 'DISA外呼', '0691558', '29769350', TO_DATE('05/28/2014 10:28:16', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2014 10:30:12', 'MM/DD/YYYY HH24:MI:SS'), 116, 0.12, 9);
Insert into TS_INVENTORY Values (1988, '000', 'DISA外呼', '0691558', '013614052136', TO_DATE('05/28/2014 09:42:38', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2014 09:45:10', 'MM/DD/YYYY HH24:MI:SS'), 152, 0.45, 9);
Insert into TS_INVENTORY Values (2314, '000', 'DISA外呼', '0691558', '11183', TO_DATE('06/09/2014 09:55:57', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/09/2014 10:00:39', 'MM/DD/YYYY HH24:MI:SS'), 282, 0.3, 9);
Insert into TS_INVENTORY Values (2315, '000', 'DISA外呼', '0691558', '13434742002', TO_DATE('06/09/2014 09:06:50', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/09/2014 09:07:01', 'MM/DD/YYYY HH24:MI:SS'), 11, 0.06, 9);
Insert into TS_INVENTORY Values (1956, '000', 'DISA外呼', '0691558', '013197766488', TO_DATE('05/31/2014 16:50:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/31/2014 16:51:21', 'MM/DD/YYYY HH24:MI:SS'), 57, 0.15, 9);
实现如下SQL实现的功能,写视图或存储过程都可以(需要再加上一列,得出每笔通话是套餐内消费还是套餐外消费):
套餐外消费
1、ARULE=0。比如套餐资费50,剩2元,打通3元,这通电话属套餐外消费。国内电话累计额<=50,算50 累计>50,超出部分属套餐外消费。