SQL多表查询问题

xuanyuan0101 2010-07-24 06:40:23
本帖最后由 shengvssi001 于 2010-7-24 15:18 编辑

表 【员工】 【部门】

-----------------------------------------
department【部门】
DNAME DNUMBER MGRSSN MGRSTARTDATE
Headquarters 1 888665555 1981/6/19
Administration 4 987654321 1995/1/1
Research 5 333445555 1988/5/22
--------------------------------------------
employee【员工】
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO
John B Smith 123456789 1965/1/9 731 Fondren, Houston,TX M 30000 333445555 5
Franklin T Wong 333445555 1955/12/8 638 Voss, Houston,TX M 40000 888665555 5
Ramesh K Narayan 666884444 1962/9/15 975 Fire Oak, Humble, TX M 38000 333445555 5
James E Borg 888665555 1937/11/10 450 Stone, Houston, TX M 55000 1
Jennifer S Wallace 987654321 1941/6/20 291 Berry, Bellaire, TX F 43000 888665555 4
Ahmad V Jabbar 987987987 1969/3/29 980 Dallas, Houston, TX M 25000 987654321 4
Alicia J Zelaya 999887777 1968/7/19 3321 Castle, Spring, TX F 25000 987654321 4
------------------------------------------------------------------------------------------------------------------------
题目如下:

查询有两个或以上“工资大于等于30000员工”的部门名称
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuanyuan0101 2010-07-26
  • 打赏
  • 举报
回复
为什么没人帮忙呢??急啊!!

xiaoli1987 2010-07-26
  • 打赏
  • 举报
回复
错了,错了,查询有两个或以上“工资大于等于30000员工”的部门名称
那么应该是

select a.DNAME from departmen a,employee b
where a.DNUMBER=b.DNO and b.SALARY>=30000
group by a.DNAME
having count(*)>1
xiaoli1987 2010-07-26
  • 打赏
  • 举报
回复
select a.DNAME from departmen a,employee b
where a.DNUMBER=b.DNO and b.SALARY>30000
group by a.DNAME
having count(*)>2

ncufunk 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuanyuan0101 的回复:]
对于每个员工,查询其姓名以及他/她的直接上司的姓名(分别在查询出的员工、上司的FNAME和LNAME前面加上“员工_”和“上司_”的前缀以示区别,如“员工_FNAME”)。
还有救市这个问题,看不懂什么意思啊!!无从下手
[/Quote]
LZ大几的学生?

你给的两个表来看似乎没有上司的信息,你是不是还有一个上司的 表,没有贴出来。

从你给的问题来看,是考你对分组汇总,和表关联的知识进行考察,比较基础哦,要加油。

xuanyuan0101 2010-07-24
  • 打赏
  • 举报
回复
对于每个员工,查询其姓名以及他/她的直接上司的姓名(分别在查询出的员工、上司的FNAME和LNAME前面加上“员工_”和“上司_”的前缀以示区别,如“员工_FNAME”)。
还有救市这个问题,看不懂什么意思啊!!无从下手
百年树人 2010-07-24
  • 打赏
  • 举报
回复
SELECT a.DNAME
FROM department A,employee B
WHERE A.DNUMBER=B.DNO AND B.SALARY>=30000
GROUP BY A.DNAME
HAVING COUNT(1)>2
xuanyuan0101 2010-07-24
  • 打赏
  • 举报
回复
select dname
from department
where dnumber in
( select dno
from employee
where salary >=30000
group by dno
having count(*) >=2) 有没有比这个简单的语句啊

34,576

社区成员

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

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