ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > SQL in Excel > [练习]SQL练习[已总结]

[练习]SQL练习[已总结]

作者:绿色风 分类: 时间:2022-08-18 浏览:198
楼主
海洋之星
题目:查询所有职工的工资都多于1210元的信息
结果如图所示

 


数据.rar
2楼
wise
  1. select A.* from [ck$] A,(select distinct 仓库号 from [zg$]  where 仓库号 not  in ( select 仓库号 from [zg$] where 工资 <=1210)) B where A.仓库号=B.仓库号
3楼
wjc2090742
  1. select * from [ck$] where 仓库号 in (SELECT 仓库号 FROM [zg$] WHERE 仓库号 NOT IN (SELECT 仓库号 FROM [zg$] WHERE 工资<=1210))


抄一下楼主的句子。

数据.rar
4楼
wjc2090742
  1. select a.* from [ck$]a,(SELECT 仓库号 FROM [zg$] GROUP BY 仓库号 HAVING min(工资)>1210)b where a.仓库号=b.仓库号


或者:

  1. select * from [ck$] where 仓库号 in (SELECT 仓库号 FROM [zg$] GROUP BY 仓库号 HAVING min(工资)>1210)

数据.rar
5楼
amulee
  1. select * from [ck$] where 仓库号 not in (select 仓库号 from [zg$] where 工资<=1210) and 仓库号 in (select 仓库号 from [zg$])
6楼
海绵宝宝
  1. select a.职工号,a.工资,a.仓库号,b.城市,b.面积 from [zg$] as a inner join [ck$] as b on (a.仓库号=b.仓库号 and a.工资>1210)




海洋大哥,顺便帮我看看,为什么我设置了字段显示顺序,但结果仍然不按我的顺序显示啊,如果您知道原因,发我信息或群里说,谢谢
Book2.zip
7楼
mn860429
  1. select * from [ck$] a where (select min(工资) from [zg$] where 仓库号 =a.仓库号)>1210
8楼
mn860429
  1. select a.仓库号,城市,面积 from [ck$] a, [zg$] b where a.仓库号 =b.仓库号 group by a.仓库号,城市,面积 having min(工资)>1210
9楼
水星钓鱼
  1. select * from [ck$] where 仓库号 in (select 仓库号 from [zg$] group by 仓库号 having min(工资)>1210)
建议以后出题多加些说明,比如说结果为什么是这样等。
10楼
gouweicao78
  1. select * from [ck$] where 仓库号 in (select 仓库号 from [zg$] group by 仓库号 having min(工资)>1210)
11楼
zm0115
参与一下
  1. select * from [ck$] where 仓库号 in (select 仓库号 from [zg$] group by 仓库号 having min(工资)>1210)


数据.rar
12楼
mxqchina
  1. select * from [ck$] where 仓库号 not in (select 仓库号 from [zg$] where 工资<=1210) and 仓库号 in (SELECT 仓库号 FROM [zg$])
13楼
海洋之星
总结:
1、对题目的理解:题目是:查询所有职工的工资都多于1210元的信息,我对题目的理解是:“查询所有职工工资都多于1210元的仓库的信息,并且该仓库至少要有一名职工”。为什么要说加“并且该仓库至少要有一名职工”这句话呢,因为我们对没有职工的仓库不感兴趣,即如果一个仓库中没有职工,有何来工资呢。
2、我的答案:
  1. select * from [ck$] where 仓库号 not in (select 仓库号 from [zg$] where 工资<=1210) and 仓库号 in (select 仓库号 from [zg$])
分析:主要利用嵌套获两个条件:
(1)利用not in (select 仓库号 from [zg$] where 工资<=1210)查询出所有职工的工资都多于1210的仓库号
(2)利用in (select 仓库号 from [zg$])[/code]来确保仓库里是否有员工。
3、答案评价
(1)在所有答案中guoweicao78版主和水星钩鱼版主两位的答案一样,都使用了“group by 仓库号 having min(工资)>1210”这样的个条件,我感觉用的很好,
,可以真是把 group by 和having这两个短语用活了,哈哈,值得我学习。
(2)其他答案中大家都从不同角度进行思考,但大概思路和我的一样,答案正确。哈哈
(3)wjc2090742利用了多种方法,厉害
(4)唯有海绵宝宝的答案不正确,因为他把把“所有职工的工资都多于1210元”这个条件没有弄清楚。
14楼
过期品24

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap