热情软件屋

 

如何进行分类统计


编号:QA001480
建立日期: 1999年8月9日 最后修改日期:1999年8月9日
所属类别:

wujing:
    Windows
    vb6.0
    我碰到如下问题。我在查询一数据库时,需要统计信息。应如何做?哪里有类似的例程?
    具体是:
    数据库 tele.mdb 里面的huadan表
    用tdbgrid通过sql查询。列出需要查询的数据
    比如: 分机号码:101 开始日期:19990101 结束日期: 19991212
    用 Data1.RecordSource = "Select 分机号码,地名,电话号码,日期,时间,时长,单价,价格 From huadan Where(longd >= '" & Text2.Text & "')and (longd<= '" & Text3.Text & "') Order By 分机号码 "
    表中就列出相应的数据.
    


    分机 日期 时间 号码 地名 单价 时长 价格
    101 1999.1.1 12:31 1234567 市话 0.18 4 0.36
    101 1999.1.2 12:32 021222222 上海 1.00 3 3.00
    .....................................
    102...............................
    103.........................
    210........................
    210................................................................
    

    但是我想要我的程序在表的下面列出这样的结果:
    
能自动列出:

    101分机 日期: 1999010 19991212 其中:市话xxx次,xxxx元 国内:xxx次,xxxx元,国际:xxx次,xxxx元
    102分机............................
    104...............................
    105分机 无话单
    106分机.........................................
    109................................
    .......................................
    210
    
其中,多少次是数据的数目, 多少钱是这些数据价格相加的合计。分机号码是程序自动从数据库中自动找到的所有可能值。
    我只能用
    hangshu = TDBGrid1.ApproxCount
     For i = 0 To hangshu - 1
     zhi = CDbl(TDBGrid1.Columns(7).CellText(TDBGrid1.GetBookmark(i)))
     totel = totel + zhi
     Next i
     Label7.Caption = "共" & hangshu & "话单,合计是:" & totel & "元"
    这只能显示表中的数据个数和金额合计,无法自动统计出分别的数目和价格。
    我真不知道如何做到。实在是感谢!

回答:

    你可以在查询时使用GROUP BY子句。查寻分三次进行。
    市内话费查询为
    SELECT 分机号码, Count(分机号码), Sum(价格) WHERE 单价=0.18 FORM huadan WHERE ... GROUP BY 分机号码 Order By 分机号码
    这里Count(分机号码)是市内电话的次数,而Sum(价格)是市内电话的总钱数。类似的,你也可以统计出国内和国际的价格。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio