我有一个相当简单的脚本要编写:我必须为我的组织计算所有国际通话费用。我有两个表:电话记录表和费率表。
我确定的解决方案很简单:
从电话记录表中选择目的地国家代码和通话时长
从费率表中选择每分钟的费用(使用我刚刚选择的目的地国家代码)
然后将每个国际电话的持续时间和每分钟费用 (CPM) 相乘,并将其添加到一个名为 total 的变量中,该变量在最后显示给用户。
现在,如果我能够以任何我想要的方式写这个,我将能够在大约 30 分钟内完成。但是,有人告诉我,我必须用 SQL 编写大部分内容。
所以我用谷歌搜索了一下并决定使用存储过程,所以:
我将如何遍历第一个选择查询的结果?如果这是在 ColdFusion 或 PHP 中,我会简单地将结果放入一个数组中——但我还没有找到一种方法将一个查询的结果插入到 SQL 中的一个数组中。
第二:有没有办法浓缩这些步骤?
例如:
total = 0
select destinationareacode, duration from phonelogs, where destination=international
for each record, select CPM from rates, where areacode = (record.destinationareacode)
total+=CPM*(duration/60)
然后总数会显示给用户。
无论如何...澄清我的问题:
如何遍历一组查询结果?是否可以在遍历这些结果时执行另一个查询,使用结果本身(区域代码)作为该查询中的条件?
抱歉,如果这一切看起来令人费解,我不知道该如何表达我的问题。