【发布时间】:2011-04-12 23:28:28
【问题描述】:
有没有人知道如何从 sql 中的通话记录表和资费表计算通话费用并将输出放入新表中???
几秒钟或几分钟的关税费率。
您能否提供一些示例查询?
这是我用来创建带有字段名称的表的代码:
CREATE TABLE cdr (
accountcode VARCHAR (30),
src VARCHAR(64),
dst VARCHAR(64),
dcontext VARCHAR(32),
clid VARCHAR(32),
channel VARCHAR(32),
dstchannel VARCHAR(32),
lastapp VARCHAR(32),
lastdata VARCHAR(64),
calldate TIMESTAMP NOT NULL,
answerdate TIMESTAMP NOT NULL,
hangupdate TIMESTAMP NOT NULL,
duration INT(8) UNSIGNED DEFAULT NULL,
billsec INT(8) UNSIGNED DEFAULT NULL,
disposition VARCHAR(32),
amaflags VARCHAR(128),
PRIMARY KEY (clid,channel,calldate)
);
对于关税税率,我有高峰和非高峰:
CREATE TABLE tariffs (ratestart TIME, rateend TIME, ratecharged DECIMAL(10,8));
INSERT INTO tariffs(ratestart, rateend, ratecharged)
VALUES("08:00:00", "19:00:00", 3.3333);
INSERT INTO tariffs(ratestart,rateend,ratecharged)
VALUES("19:00:00", "08:00:00", 1.5555);
我希望将通话费用的输出制成一个新表,其中包含 callerid、来源、目的地、通话时长、资费和通话费用。
我还应该创建另一个包含用户列表的表吗?以及如何在周末向非高峰期收费?
【问题讨论】:
-
嗯。添加?减法?一些分数?真的需要更多信息。
-
您能否发布表定义、一些示例数据和预期输出以及算法说明(即第一分钟 0.10,基于
ELAPSED_MINUTES中的列,每增加一分钟 0.08CALL_LOG表。使用CALL_LOG中的TARIFF_ID列将结果乘以TARIFF表中的1+TARIFF_PCT用于连接)。 -
"您能否提供一些示例查询。"只有你先发布一些代码,如果你给我看你的,我会告诉你我的;)
-
@Pekka - 我有两张表,一张是包含通话时长、来源和目的地以及其他一些字段的通话记录,我还有一张包含关税、非高峰和高峰费率的表格。我想知道如何查询这些表以按分钟或秒计算关税费率的通话时间,这将为我提供每次通话的费用。这将被插入到一个新表中,其中包含源、目标、callerid、通话时长和通话费用。
-
@Adnan 我明白了。我认为最好能显示实际的表结构。