一道看似简单的面试题

员工表(emp表)
EmpId EmpName EmpSal(员工薪水)
1 ABC 1200
2 BCD 2000
3 EDF 1400

薪水级别表(sal表)
MinSal MaxSal SalClass(薪水级别)
1000 1500 1
1800 2200 2
----------------------------------------------------
请使用一条sql语句列车员工号位”1”的姓名,薪水,薪水级别,同级别人数,平均工资?

SELECT
e.EMP_NAME,
e.EMP_SAL,
s.SAL_CLASS,
f.NUM,
f.AVGNUM
FROM
SAL s,
EMP e,
(
SELECT
COUNT(*)AS NUM,
AVG(e1.EMP_SAL)AVGNUM
FROM
EMP e1,
SAL s1
WHERE
s1.MIN_SAL <= e1.EMP_SAL
AND e1.EMP_SAL <= s1.MAX_SAL
AND s1.SAL_CLASS =(
SELECT
s2.SAL_CLASS
FROM
EMP e2,SAL s2
WHERE
e2.EMP_ID = 1 AND
s2.MIN_SAL < e2.EMP_SAL
AND e2.EMP_SAL < s2.MAX_SAL
)
)f
WHERE
e.EMP_ID = 1
AND s.SAL_CLASS =(
SELECT
s3.SAL_CLASS
FROM
SAL s3
WHERE
s3.MIN_SAL <= e.EMP_SAL
AND e.EMP_SAL <= s3.MAX_SAL
)
AND s.MIN_SAL <= e.EMP_SAL
AND e.EMP_SAL <= s.MAX_SAL;


结果:
ABC 1200 1 2 1300

[color=orange]第二题自己写一个JDBC: 就不会了 还有待修炼啊~~~[/color]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值