求解2个sql语句 谢谢

Persistence_x 2014-03-13 01:30:10

请帮忙解答一下sql中的1.2 题 有越简单的方法越好.
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yole 2014-03-13
  • 打赏
  • 举报
回复

--> 测试数据:[emp]
if object_id('[emp]') is not null drop table [emp]
go 
create table [emp]([empID] int,[empName] varchar(10),[empSal] int)
insert [emp]
select 1,'ABC',1200 union all
select 2,'BCD',2000




--> 测试数据:[sal]
if object_id('[sal]') is not null drop table [sal]
go 
create table [sal]([minSal] int,[maxSal] int,[salClass] int)
insert [sal]
select 1000,1500,1 union all
select 1500,2200,2


--查询1
--select * from [emp]
--select * from [sal]

select a.empid,a.empName ,a.empSal,b.salClass,c.同级别人数,c.平均工资
from emp a left join sal b on a.empSal >=b.minSal and a.empSal<b.maxSal
left join 
(
select b.salClass,count(*)as '同级别人数',sum(a.empSal)/count(*) as '平均工资' 
from emp a left join sal b on a.empSal >=b.minSal and a.empSal<b.maxSal
group by b.salClass
) c on b.salClass=c.salClass
where empID =1
/*
empid       empName    empSal      salClass    同级别人数       平均工资
-----------          ---------- -  ----------       ----------- -----------                  -----------
1                     ABC            1200        1                       1                        1200

(1 行受影响)

*/

--查询2
select a.empid,a.empName ,a.empSal,b.salClass,c.同级别人数,c.平均工资,
case when a.empSal=b.minSal then '最低' when a.empSal=b.maxSal then '最高' else '普通' end as '成本标准'
from emp a left join sal b on a.empSal >=b.minSal and a.empSal<b.maxSal
left join 
(
select b.salClass,count(*)as '同级别人数',sum(a.empSal)/count(*) as '平均工资' 
from emp a left join sal b on a.empSal >=b.minSal and a.empSal<b.maxSal
group by b.salClass
) c on b.salClass=c.salClass
where empID =1

/*
empid       empName    empSal      salClass    同级别人数   平均工资      成本标准
-----------           ----------    -----------        -----------    -----------              -----------     ----
1                        ABC        1200                      1           1                       1200           普通

(1 行受影响)

*/


發糞塗牆 2014-03-13
  • 打赏
  • 举报
回复
引用 2 楼 u010192842 的回复:
[quote=引用 1 楼 DBA_Huangzj 的回复:] 自己建表搞搞。这种程度的笔试题还是自己做吧。
我就不害人了~~~[/quote]你本来就人畜无害
Yole 2014-03-13
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
自己建表搞搞。这种程度的笔试题还是自己做吧。
我就不害人了~~~
發糞塗牆 2014-03-13
  • 打赏
  • 举报
回复
自己建表搞搞。这种程度的笔试题还是自己做吧。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧