永发信息网

sql的复杂查询问题:

答案:2  悬赏:80  手机版
解决时间 2021-12-21 03:53
2, 有三张表:(15*2)
Employee 职工 (工号,姓名,性别,年龄,部门)(no,name,sex,age,department)
Wage工资 (工号,工资金额)(no,amount)
Attend出勤 (工号,日期,是否出勤)(no,date,attendance)

对以下2个问题写出SQL语句:
1) 查询工资金额大于8000且2010年缺勤次数小于5次的职工工号和姓名。
2) 统计2010年12月与2010年1月的对比情况,包括员工的工资平均数,出勤率平均数。
最佳答案
no,date,attendance
12 2010-10-10 Y
13 2010-11-12 N
1)
思路:先查工资大于8000,再并列查询,小于5次
2010年小于5次的
select A.no count(A.no) from Attend A where attendance group by substring(date,0,4) having count(A.no)<5
故,综上得出结论
select E.no,E.name from Employee E left join Wage W on E.no=W.no left join (select A.no count(A.no) from Attend A where attendance group by substring(date,0,4) having count(A.no)<5)A on E.no=A.no where W.amount > 8000;
2)
思路:先查工资平均数,分别查不同的日期即可
select W.amount/sum(W.amoun),A.no,A.attendance/sum(A.attendance) from Attend A left join Wage W on W.no=A.no where substring(date,0,6)='201212' group by A.no
select W.amount/sum(W.amoun),A.no,A.attendance/sum(A.attendance) from Attend A left join Wage W on W.no=A.no where substring(date,0,6)='201201' group by A.no
全部回答
这个你写个sql语句存下来不就行了吗? select * from abc where name ='' or name ='' or ....
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦见自己在山中捡到了很多银元宝和金砖
单选题TheotherdayCatherineworethesam
发际线高怎么办?能调理回来吗? 50分
单选题下列句子中加粗成语运用正确的一项是A.
《大学》在亲民”的“亲”是什么意思
定家门第是什么意思
上海市居住证和上海市户口的区别?
会宁县环保局地址在哪?我要去那里办事
上海市普陀区中山北路2525弄属于什么街道
解答题现有从生物体内提取的ATP分子和一个DNA
马桶被硬泡沫板堵住了
金刚石、刚玉、珍珠、玛瑙等宝石中能够耐酸碱
甲乙两辆汽车同时开出,甲车每小时行56km,乙车
large number of people think truth has be
湘楚嘉华客服号是什么号码急求
推荐资讯
刘家咀村委会办公地址在什么地方?我要处理点
js正则表达式判断输入框是否为正整数或者正整
快手喊麦怎么弄伴奏
红绿黄蓝四颜色的logo以什么图案为背景比较好
建行大连人民路支行地址在什么地方?想过去办
如何关闭系统更新提示
靖边县气象局办公地址在什么地方?我要处理点
19寸液晶显示器怎么调对眼睛好?
梦见妈妈坐牢
被反射的太阳光有温度吗?
电池盒两极的接线柱是不能用导线直接相连的,
婴之良品和花王哪个好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?