灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3395回复:0

[SQL Server]有关SQL中的计算问题

楼主#
更多 发布于:2013-10-06 15:34
有关SQL中的计算问题
 
这几天,我们都在做机房收费系统。在此过程中,我们会遇到很多关于SQL server表中数据的计算问题。在此总结一下!
 
SQL语句中关于计算的聚合函数:
 
COUNT(*) :计算元组的个数
 
COUNT(<列名>):求一列中值得计算个数
 
SUM/AVG/MAX/MIN(<列名>):求一列值得总和/平均值/最大值/最小值(数值型)
 
以上这些函数是在SQL中编辑表数据时可以用到的。经过实践,由于我们是利用VB来实现机房收费系统中的数据计算,那么,这个时候,上面这些函数貌似帮不上我们什么大忙!怎么办呢?
 
让我们先分析一下,我们经常遇到的计算问题的类型
 
1:
计算元组(记录)的个数:如现在正在上机的人数,需要在上机表中进行查询并将其显示出来。
 
这里我们可以利用对象的属性来解决:
 
[vb]  
    count=mrc.recordcount  '赋给一个变量,将其显示出来即可  
 
2.计算某一列值得总和:例如:我们需要计算所有注册过的卡的存款总额。
 
这个时候,我们可以找到需要计算的表,然后将需要汇总的列的所有值进行遍历
 
例如:
 
[vb]
dim mrc as adodb.recordset  
    dim txtSQL as string  
    dim msgText as string  
    dim countMoney as long  
  
    txtsql="select * from registcard_info"  
    set mrc=executesql(txtsql,msgtext)  
  
    countmoney=0  
    do while not mrc.eof  
        countmoney=countmoney+mrc!money '如果知道是哪一列,可直接用field属性来表示  
        mrc.movenext  
    loop

喜欢0 评分0
游客

返回顶部