首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Access >

求几个不知道是简单还是复杂的SQL语句,该怎么解决

2013-09-11 
求几个不知道是简单还是复杂的SQL语句A表单位    人数   总工资  平均工资技术部    30    30000销售部   

求几个不知道是简单还是复杂的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

热点排行