求几个不知道是简单还是复杂的SQL语句
A表
单位 人数 总工资 平均工资
技术部 30 30000
销售部 20 50000
------------------------------
我要求平均工资,其中人数有的单位可能是0,因为可能没有输入。如果人数非0,则平均工资=总工资/人数,如果人数为0,则不计算。
这个怎么写呀?
B表
单位 工资 奖金
已经有很多条记录了。我要添加一条新记录,新记录的字段的值是B表中某些记录的相应字段的和或者差。这种SQL语句怎么写?
[解决办法]
select 单位,人数,总工资,iif(isnull(人数) or 人数=0,null,总工资/人数) as 平均工资
from A
[解决办法]
--如果需要更新
update A set 平均工资= iif(isnull(人数) or 人数=0,null,总工资/人数) as 平均工资
[解决办法]
B表
单位 工资 奖金
已经有很多条记录了。我要添加一条新记录,新记录的字段的值是B表中某些记录的相应字段的和或者差。这种SQL语句怎么写?
------------------------------------
用dsum()域函数,如:
insert into A(单位,总工资)
select 单位,dsum( "工资 ", "B ", "你指定的条件 ")
from B
[解决办法]
update A表
set 平均工资=总工资/人数
where 人数> 0
[解决办法]
B表
单位 工资 奖金
已经有很多条记录了。我要添加一条新记录,新记录的字段的值是B表中某些记录的相应字段的和或者差。
请举例
和比较容易,直接SUM就行了,
insert into B表
select 单位,sum(工资),sum(奖金)
from B表
group by 单位
差要看你的具体需求了。
[解决办法]
select 单位,人数,总工资,iif(isnull(人数) or 人数=0,null,总工资/人数) as 平均工资
from tt
or
update tt set 平均工资= iif(isnull(人数) or 人数=0,null,总工资/人数) as 平均工资
insert into A(单位,总工资)
select 单位,dsum( "工资 ", "B ", "你指定的条件 ")
from B
or
insert into A(单位,总工资)
select 单位,dsum( "-1*工资 ", "B ", "你指定的条件 ")
from B
[解决办法]
--查詢
Select
单位,
人数,
总工资,
平均工资 = IIF(人数 = 0 , 0 , 总工资 / 人数)
From
A
--更新
Update
A
Set
平均工资 = IIF(人数 = 0 , 0 , 总工资 / 人数)
[解决办法]
--如果需要更新,并且在纯Access环境中,还可以使用nz()
update A set 平均工资= iif(nz(人数,0)=0,null,总工资/人数) as 平均工资
[解决办法]
select 单位,人数,总工资,iif(isnull(人数) or 人数=0,0,总工资/人数) as 平均工资
from tt
or
update tt set 平均工资= iif(isnull(人数) or 人数=0,0,总工资/人数) as 平均工资
insert into A(单位,总工资)
select 单位,dsum( "工资 ", "B ", "你指定的条件 ")
from B
or
insert into A(单位,总工资)
select 单位,dsum( "-1*工资 ", "B ", "你指定的条件 ")
from B
我的异常网推荐解决方案:软件开发者薪资,http://www.myexception.cn/other/1391128.html