多表数据查询咨询:基于5张业务表的两类查询实现需求
SQL查询解决方案
a. 查询项目地点为'ljk'的项目详情及部门经理信息
要拿到目标数据,需要关联三张表来串联信息,步骤如下:
- 先从
Project表筛选出地点为'ljk'的项目记录 - 通过
Dnumber外键关联Department表,获取项目所属的管控部门 - 再通过
Department的Mgrno(经理工号)关联Employee表,提取部门经理的姓名和地址
对应的SQL语句:
SELECT P.Pnumber AS 项目编号, D.Dname AS 所属管控部门, E.Fname AS 经理名, E.Lname AS 经理姓, E.Address AS 经理地址 FROM Project P INNER JOIN Department D ON P.Dnumber = D.Dnumber INNER JOIN Employee E ON D.Mgrno = E.Empno WHERE P.Location = 'ljk';
b. 计算隶属于指定部门的员工薪资总和
你提到的“隶属于'F'...”应该是指部门名称和'F'相关(比如以'F'开头),这里我默认是部门名称以'F'开头的情况。需要关联Employee和Department表,通过Dnumber外键匹配后筛选部门,再对薪资求和:
对应的SQL语句:
SELECT SUM(E.Salary) AS 员工薪资总和 FROM Employee E INNER JOIN Department D ON E.Dnumber = D.Dnumber WHERE D.Dname LIKE 'F%'; -- 如果是部门名称包含'F',就改成 '%F%'
如果你的实际需求是其他筛选条件(比如部门编号含'F'),只需要修改WHERE子句即可,比如换成D.Dnumber LIKE 'F%'。
内容的提问来源于stack exchange,提问作者gaufler
相关产品推荐
相关产品推荐

