欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 02:26:06 责任编辑: Author_N1

 

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

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:26:06
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9794/
本文WWW.DOC100.NET DOC100.NET版权所有。