table表列求和(机房问题)

在机房收费系统的结账窗体中,需要将很多数据求和,在这个阶段,我想了几个可行的方法。

方法一,使用select语句求和。

我们都知道select语句可以选择出符合条件的数据,其实他还有更为强大的功能,就是SQL函数,通过SQL函数,我们可以求出同一个关键字下最大值MAX(关键字),最小值MIN(关键字),平均值AVG(关键字),以及求和运算SUM(关键字)等等。下面以求和运算为例。

编码规则如下:

txtSQL = "select SUM(关键字) as SUM from 表名 where 关键字= '" & 关键字 & "'"

以我的机房中求和充值总额为例:

txtSQL = "select SUM(addmoney) as SUM from ReCharge_Info where UserID= '" & Trim(ComboUserID.Text) & "' and status = '" & "未结账" & "'"
其中,我在ReCharge表中查询到了限制条件为UserID和status情况下,关键字为addmoney列下充值额,然后SUM求和,将求和后的总金额保存在一个新建的SUM表中,在这里,我们可以在SQL server中新建查询来更直观的看到其中的运行机制。


点击执行后:

table表列求和(机房问题)_第1张图片此时,新建了一个表格,来作为我们求和结果的容器。


方法二,使用For循环。

我们知道,For循环是指定步数的循环,但是,当我们这样写的时候

    For i = 1 to mrc.Recordcount
        循环体
    Next i
mrc的Recordcount属性大家都不陌生,在机房上下机时显示在线人数时用到了这个属性,这个属性同样可以这样用,有多少条符合条件的数据,循环体就执行多少次,实现了遍历循环。


方法三,Do While 循环。

    Do While not mrc.EOF
        循环体
    loop

原理和For循环相同,遍历每一条符合条件的语句,然后相加求和。


总结:

这三种方法在实践中都是可以实现机房收费系统所要求的功能的,不同的是,第一种方法使用的是SQL函数,而后两种用的是遍历循环,相比之下,在数据繁多的背景下,遍历循环是必然要被淘汰的。通过实现这个功能,发现了相同的功能可以由多种代码实现,而区分这些代码的良莠是我们需要学习的。

你可能感兴趣的:(table表列求和(机房问题))