0

1.总结问题

我试图回答这个问题:参与项目编号 15 和 22 的员工的员工和分配费用 (ASSIGN_CHARGE) 是谁?

  • 在结果中显示 EMP_NUM、EMP_LNAME
  • 计算每个项目的每个员工的总分配费用 (ASSIGN_CHARGE)
  • 计算每个项目的总分配费用
  • 将所有计算四舍五入到小数点后两位
  • 按 EMP_NUM 升序对结果进行排序
  1. 描述你尝试过的东西

代码:

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_NUMASSIGNMENTand中的外键PROJECT

PROJECTprimaryPROJ_NUMASSIGNMENT. 这是第一个具有跨三个表的共享键的 ERD。我需要在我的代码中考虑到这一点吗?

4

0 回答 0