
是不是需要一次性用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累加等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)