数据库设计:
1。费用表
费用编码,起驶时间,终止时间,费用
2。客户端表
客户端编码,客户端说明
3。收费明细
日期时间,分钟数,费用编码,客户端编码要统计每个客户端的时间 费用
select A.客户端编码, sum(A.分钟数) 时间, sum(B.费用*A.分钟数) 费用 from 
 收费明细 as A left join 
  费用表 as B on convert(char, A.日期时间, 108) between B.起驶时间 and B.终止时间
group by A.客户端编码总共的时间费用
select sum(A.分钟数) 时间, sum(B.费用*A.分钟数) 费用 from 
 收费明细 as A left join 
  费用表 as B on convert(char, A.日期时间, 108) between B.起驶时间 and B.终止时间

解决方案 »

  1.   

    1.数据库设计
    用户登记表:( 用户ID,客户名称 )——[用户ID] 主键
    服务记录表:( 服务ID,开始时间,结束时间,服务费金额,用户ID )——[客户ID] 外键
    资费标准表:( 标准ID,开始时间,结束时间,费用标准 )——[标准ID] 主键
    2.算法设计
    -新用户注册,系统开始服务——写[客户登记表]。
    -以服务器时钟驱动每单位时间为每一个用户写一条服务记录,并根据[资费标准表]计算该单位时间 段费用金额。
    -用户注销结帐可从[服务记录表]轻松累计得到时间费用,而后清楚[客户登记表]、[服务记录表]中相关记录。注:整个记费系统以服务器时钟为主时钟,单位记费时间片大小可设置,它要在服务器系统负载和记费精确度(包括开始和掉电)两方面寻求平衡。
        这应该是你要的!哈哈,或许还有更好的方案。
      

  2.   

    yumenging!!!!
    Nothing?! fresh???!
      

  3.   

    What do you mean above?
    please explain.
      

  4.   

    服务开始时间写入数据库一次,
    当服务结束时间写入数据库一次,
    根据你的费用标准计费
    一个用户只需要操作数据库二次,不存在计费时间段不同就不停的执行一个程序.
    例:开始时间5:00:00
    字段设为datetime
    2003-4-1 5:00:00
    结束时间13:00:00
    2003-4-1 13:00:00
    费用5:00:00 到6:00:00 一个小时计费标准是0.6元/分
    6:00:00 到13:00:00    七个小时计费标准是1.2元/分
    合计费用:1*0.6+7*1.2=
    是否是理解错误了...
      

  5.   

    客户端用javascript写一个时间及费用显示给用户看.
    数据库用一个存储过程(可以执行二次,一次开始,一次结束,也可以在客户有一程序一分钟刷新一下,即一分钟执行一次这个存储过程 )
    进入个存储过程中时先判断系统时间
    不同的时间段不同的计费
    insert into 用户登记表(用户ID,客户名称) values(...)
    insert into 服务记录表( 服务ID,开始时间,结束时间,服务费金额,用户ID )以后每分钟更新一下服务记录表
    update 服务记录表 set 结束时间=getdate(),服务费金额=服务费金额+(不同的时间段不同的计费标准) where ...
      

  6.   

    上面的有点像了!
    在此再解释一下:
     如下:
          3台甲,2台乙,4台病,5台定。(控制开关)
        时间段:
               1 管段:23:00:00-7:00:00
               2 冯端:7:00:00-12:00:00
                       19:00:00-22:22:00:00
               3 ping: 12:00:00-19:00:00
                              22:00:00-23:00:00
    统计每天,周,月的报表