1.总结问题
我试图回答这个问题:参与项目编号 15 和 22 的员工的员工和分配费用 (ASSIGN_CHARGE) 是谁?
- 在结果中显示 EMP_NUM、EMP_LNAME
- 计算每个项目的每个员工的总分配费用 (ASSIGN_CHARGE)
- 计算每个项目的总分配费用
- 将所有计算四舍五入到小数点后两位
- 按 EMP_NUM 升序对结果进行排序
- 描述你尝试过的东西
代码:
SELECT
EMP.EMP_NUM ,
EMP.EMP_LNAME ,
PROJ15.PROJ_NUM ,
PROJ22.PROJ_NUM
FROM
`sharp-footing-324103.saleco.employee` as EMP
INNER JOIN
(SELECT
SUM(ASS.ASSIGN_CHARGE) AS proj15Charge,
ASS.EMP_NUM,
ASS.PROJ_NUM
FROM
`sharp-footing-324103.constructco.assignment` as ASS
INNER JOIN
`sharp-footing-324103.constructco.project` AS PROJ ON PROJ.PROJ_NUM = ASS.PROJ_NUM
WHERE
PROJ.PROJ_NUM = 15
GROUP BY
ASS.EMP_NUM, ASS.PROJ_NUM) AS PROJ15 ON EMP.EMP_NUM = PROJ15.PROJ_NUM
INNER JOIN
(SELECT
SUM(ASS.ASSIGN_CHARGE) AS proj22Charge,
ASS.EMP_NUM,
ASS.PROJ_NUM
FROM
`sharp-footing-324103.constructco.assignment` AS ASS
INNER JOIN
`sharp-footing-324103.constructco.project` AS PROJ ON PROJ.PROJ_NUM = ASS.PROJ_NUM
WHERE
PROJ.PROJ_NUM = 22
GROUP BY
ASS.EMP_NUM, ASS.PROJ_NUM) AS PROJ22 ON PROJ22.EMP_NUM = PROJ15.EMP_NUM
ORDER BY
EMP.EMP_NUM
这是我现在的代码,我假设我的加入断开连接,但我觉得我已经使用这个确切的语法来解决类似的问题。当我在每个内部连接中运行选定的代码时,它可以正常工作并提供部分解决方案。但是当我运行外部查询时,第一次我遇到了类似的没有结果的问题。
所以我认为问题也可能在外部查询内部查询连接中,这可能是主要问题。您通常如何诊断在行视图和连接/子查询语法中没有结果的问题?
员工主键EMP_NUM是ASSIGNMENTand中的外键PROJECT。
PROJECTprimaryPROJ_NUM是ASSIGNMENT. 这是第一个具有跨三个表的共享键的 ERD。我需要在我的代码中考虑到这一点吗?