| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1118 人关注过本帖
标题:求解答!一个SQL查询问题~
只看楼主 加入收藏
wendao6dh
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:31
专家分:74
注 册:2011-5-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
求解答!一个SQL查询问题~
职工表 内容如下:
仓库号  职工号  工资
WH2     E1      1220
WH1     E3      1210
WH2     E4      1250
WH3     E6      1230
WH1     E7      1250
WH4     E2      1300
要求:检索所有职工的工资大于或等于WH1仓库中所有职工工资的仓库号。
也就是说检索一个仓库,它里面的所有职工的工资都要大于或者等于WH1仓库中所有职工的工资(也就是最高工资)。
因为我们还没学那个关于最大最小的函数,所以不能用,只能用ALL语句……
汗……
反正我是写不出来啦,请教高手帮忙!

恩,下面是我自己写的一个查询语句:
select 仓库号;
from 职工;
where 工资>=all(select 工资;
                from 职工;
                where 仓库号="WH1")

检索的是“存在一个职工”工资大于或等于等于WH1仓库中所有职工工资的仓库号,而不是“所有职工的”工资都大于或等于等于WH1仓库中所有职工工资的仓库号。

应该如何修改呢?
请教高手帮忙~!感激不尽啊!



[ 本帖最后由 wendao6dh 于 2011-5-14 23:16 编辑 ]
搜索更多相关主题的帖子: 职工工资 
2011-05-14 13:07
fangdong65
Rank: 5Rank: 5
等 级:职业侠客
帖 子:73
专家分:301
注 册:2011-4-1
收藏
得分:1 
找仓库中最高工资和最低工资,有相关的函数!
2011-05-14 14:27
autobot
Rank: 4
等 级:业余侠客
帖 子:71
专家分:202
注 册:2007-9-6
收藏
得分:1 
没明白你什么意思,WH1时面的职工是个聚集,你是要比他们的平均工资还是最大工资还是最小工资??
2011-05-14 17:40
wendao6dh
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:31
专家分:74
注 册:2011-5-6
收藏
得分:0 
回复 2楼 fangdong65
恩,是有那个函数,可是我们刚开始学vfp,课上还没涉及到这点,不许用~
谢谢啦!

我相信满树的花朵只源于冰雪下的一颗种子。
2011-05-14 23:07
wendao6dh
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:31
专家分:74
注 册:2011-5-6
收藏
得分:0 
回复 3楼 autobot
是比仓库WH1中的所有职工的工资都要大(准确地说是大于等于),也就是说大于等于WH1的最高工资,但是最高工资的函数我们还没学,不能用~
谢谢啦~!

我相信满树的花朵只源于冰雪下的一颗种子。
2011-05-14 23:10
lxd0980
Rank: 7Rank: 7Rank: 7
来 自:湖南长沙
等 级:黑侠
帖 子:166
专家分:505
注 册:2011-3-27
收藏
得分:2 
select 仓库号;
from 职工;
where 工资>=(select  max(工资) from 职工where 仓库号="WH1")


                              
2011-05-16 08:17
wendao6dh
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:31
专家分:74
注 册:2011-5-6
收藏
得分:0 
回复 6楼 lxd0980
诶,老乡啊,我也是湖南的~!谢谢啦!
不过貌似还是没有包含 “任意一个”该仓库的职工工资工资都不小于WH1仓库中所有职工的工资这一含义啊~

和我写的那个语句一样,都是查询的“包含‘一个’职工的工资不小于WH1中所有职工的工资”仓库号哎~


我相信满树的花朵只源于冰雪下的一颗种子。
2011-05-16 22:51
panyanpan
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:82
专家分:647
注 册:2011-4-6
收藏
得分:4 
select 仓库号 from 职工 where 工资>=(select max(工资) from 职工 where 仓库号='WH1')   
and 仓库号 not in(select 仓库号 from 职工 where 工资<(select max(工资) from 职工 where 仓库号='WH1'))

--首先 取出工资大于等于 WH1仓库 最高工资的    所有仓库号
--并且 仓库号  不在  有工资低于  WH1仓库    的最高工资 中
2011-05-17 09:51
autobot
Rank: 4
等 级:业余侠客
帖 子:71
专家分:202
注 册:2007-9-6
收藏
得分:4 
SELECT b.仓库号
FROM dbo.职工 b
WHERE (SELECT MAX(c.工资) FROM dbo.职工 c WHERE c.仓库号 = 'wh1') < ALL (SELECT a.工资 FROM dbo.职工 a WHERE a.仓库号 = b.仓库号)
同楼上,你这个只能这样解。
2011-05-17 13:23
autobot
Rank: 4
等 级:业余侠客
帖 子:71
专家分:202
注 册:2007-9-6
收藏
得分:3 
你不可能让两个聚集比最大的是否比另外一个最小的大或是小,必需要用一个值和集合比,也就是说ALL只能放在小于或是大于号右边。
2011-05-17 13:28
快速回复:求解答!一个SQL查询问题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016160 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved