F
Fuweng
Unregistered / Unconfirmed
GUEST, unregistred user!
下面是我自己假想的一道题目,有点象ISP计算我们的上网费用,但更复杂些,
我们每次上网都要访问很多网站,假设ISP能记录下这些详细情况.
表结构如下:
表A: (用户上网详细记录表)
用户帐号 网站名称 开始时间(秒) 结束时间(秒)
001 网易 2000-6-7 00:00:00 2000-6-7 00:01:38
002 搜狐 2000-6-7 00:01:08 2000-6-7 00:01:31
001 新浪 2000-6-7 00:10:01 2000-6-7 00:10:10
001 大富翁 2000-6-7 00:18:06 2000-6-7 00:35:30
002 21CN 2000-6-7 00:30:00 2000-6-7 00:57:45
............................
表B: (网站费率对照表)
网站名称 费率(元/分钟)
网易 0.01
新浪 0.02
搜狐 0.04
大富翁 0.01
21CN 0.07
......................
上面表A中每条记录的费用计算规则如下:
[结束时间]减去[开始时间],将所得的秒数换算成分钟,
小于17秒, 记为0分钟;
大于等于17秒,小于1分钟, 记为1分钟;
等于60秒, 当然记为1分钟;
大于1分钟小于2分钟, 记为2分钟;
大于2分钟小于3分钟, 记为3分钟;
依次类推
然后,将表A和表B关联起来,用刚才算出的分钟乘以表B中的费率,就得到每条
记录的费用.
现在要算的是:
1.在一段时间内各个网站的收费总金额的排名
2.在一段时间内各个用户帐号的收费总金额的排名
其实上面的题目我已经算出来了,我是将所有数据都取出来在外面算的,
显然效率很低,没有体现出数据库的优势.我总觉得用SQL语言会比较好,
水平所限,弄不好!
麻烦各位大侠帮我想一下更好的计算方法,
要求是:
1. 不能改变源数据库.
2. 速度要快,效率要高.
3. 将结果在DBGrid中显示出来
4. 如果是本地数据库(如:Access97),该怎样做比较好;
如果是SQL数据库(如:MS SQL Server),该怎样做比较好;
5. 最好给出代码.
先谢了!! (95分,全部家当了)
我们每次上网都要访问很多网站,假设ISP能记录下这些详细情况.
表结构如下:
表A: (用户上网详细记录表)
用户帐号 网站名称 开始时间(秒) 结束时间(秒)
001 网易 2000-6-7 00:00:00 2000-6-7 00:01:38
002 搜狐 2000-6-7 00:01:08 2000-6-7 00:01:31
001 新浪 2000-6-7 00:10:01 2000-6-7 00:10:10
001 大富翁 2000-6-7 00:18:06 2000-6-7 00:35:30
002 21CN 2000-6-7 00:30:00 2000-6-7 00:57:45
............................
表B: (网站费率对照表)
网站名称 费率(元/分钟)
网易 0.01
新浪 0.02
搜狐 0.04
大富翁 0.01
21CN 0.07
......................
上面表A中每条记录的费用计算规则如下:
[结束时间]减去[开始时间],将所得的秒数换算成分钟,
小于17秒, 记为0分钟;
大于等于17秒,小于1分钟, 记为1分钟;
等于60秒, 当然记为1分钟;
大于1分钟小于2分钟, 记为2分钟;
大于2分钟小于3分钟, 记为3分钟;
依次类推
然后,将表A和表B关联起来,用刚才算出的分钟乘以表B中的费率,就得到每条
记录的费用.
现在要算的是:
1.在一段时间内各个网站的收费总金额的排名
2.在一段时间内各个用户帐号的收费总金额的排名
其实上面的题目我已经算出来了,我是将所有数据都取出来在外面算的,
显然效率很低,没有体现出数据库的优势.我总觉得用SQL语言会比较好,
水平所限,弄不好!
麻烦各位大侠帮我想一下更好的计算方法,
要求是:
1. 不能改变源数据库.
2. 速度要快,效率要高.
3. 将结果在DBGrid中显示出来
4. 如果是本地数据库(如:Access97),该怎样做比较好;
如果是SQL数据库(如:MS SQL Server),该怎样做比较好;
5. 最好给出代码.
先谢了!! (95分,全部家当了)