如何在ACCESS数据库中实现2次累加

如何在ACCESS数据库中实现2次累加,第1张

是不是需要一次性用SQL语句从工资表里检索出下列效果?

姓名 基本工资 奖金 其他 三金 实发金额

张三 1000 1000 200 300 1900

李四 1200 800 100 300 1800

王五 2200 800 300 300 3000

合计 4400 2600 600 900 6700

汇总那条记录一般由应用程序端解决,而不是在数据库端解决,这样会比较有效率。

如果如果一定要一次性在数据库端用SQL语句解决的话,SQL代码可以这样写:

select t姓名,t基本工资,t奖金,t其他,t三金,t实发金额 from

(select 姓名,基本工资,奖金,其他,三金,

(基本工资+奖金+其他-三金) as 实发金额,1 as px from 工资表

union all

select '合计',sum(基本工资),sum(奖金),sum(其他),sum(三金),

sum(基本工资+奖金+其他-三金),2 from 工资表)t

order by tpx

注意为了加强上述SQL代码的可读性,我写成多行形式,在应用程序里运行则应该改写为一行,否则运行可能出错。

group by一般用于将查询结果分组,多配合聚合函数,sum,count,min,max等一起使用。

如表名test,数据如下

id grade

1 10

1 50

2 30

2 40

3 20

如果按照id,求grade的和,则可以

select id,sum(grade) as grade from test group by id

结果就是

id grade

1 60

2 70

3 20

注意:count,min,max函数等也是同样道理

但有时,group by也配合having使用,如上边的例子,如果要查询grade的和大于50的id及grade的和,就可以这样使用

select id,sum(grade) as grade from test group by id having sum(grade)>50

结果如下:

id grade

1 60

2 70

这个问题是需要你在建立数据库的时候进行设置的。

我们用phpmyadmin的 *** 作来解决它:

1、

用phpmyadmin打开你的数据库,找到你的表test,打开打点击打开,处于结构状态;

2、

然后选择编辑id这个字段

3、

然后会看到这个字段里有如下属性:字段

类型

长度/值

整理

属性

Null

默认

额外

;

4、

我们需要设置的就在这个额外中,选择下拉列表,里面只有一个选项:auto_imcrement,这就是自动累加的意思;

5、

执行保存,OK,这回你再不给id这个字段进行赋值的时候,mysql会对这个字段进行自动累加。

因为数据库的限制,所以只能一次插入一条数据,多条的都是通过循环去完成的,DataAdapter所做的一次多条更新插入其实也是通过记录rowstate的状态去循环完成的,而且局限性很大,效率也不高,一般都不会用的,目前最快的应该是开启事务,循环插入,最后再一起提交是效率最高的。

update 订单主表

set ordersum = (select sum(quantityprice) from 订单明细表 where 订单主表orderno = 订单明细表orderno)

以上就是关于如何在ACCESS数据库中实现2次累加全部的内容,包括:如何在ACCESS数据库中实现2次累加、数据库问题,group by之后,某一类相似的数据怎么进行累加、php mysql 数据库 表 id累加等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9544214.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存