MySQL 对具有相同 ID 的行求和

MySQL SUM rows with same ID

我有一个似乎无法解决的问题。我有两个表,ProjectActivity。我应该合并在每个项目上花费的 activity 的总小时数。少于 1000 小时的项目不包括在内。

Project_Nr |  Project_Name |   Total Hours |
         1 |       pro1    |        501    |
         1 |       pro1    |        501    |
         2 |       pro2    |        250    |
         3 |       pro3    |        1250   |

如您所见,pro1 加起来超过 1000 小时,pro3 也是如此。我希望最终结果打印出这样的东西。

Project_Nr |  Project_Name |   Total Hours |
         1 |       pro1    |        1002   |
         3 |       pro3    |        1250   |

这是我到目前为止的 SQL 声明。我一直在获取所有项目的总时数,而不是在 Project_Nr.

上拆分
SELECT 
   project.PK_Project_Nr, 
   project.Project_Name, 
   SUM(activity.Hours) AS Combined_Hours
FROM project
INNER JOIN activity ON project.PK_Project_Nr = activity.FK_Project_Nr 
WHERE project.PK_Project_Nr IN (1)
AND project.Project_Status = "A"
GROUP BY project.Project_Nr ASC;

此代码仅检查 Project_Nr 1. 我需要它来检查所有不同的项目并检查它们的总小时数是否为 1000 并且它们的状态是否为 "A"(这意味着项目正在进行中)。

只是从 WHERE 子句中删除条件?然后添加一个 HAVING 子句用于过滤总小时数:

SELECT p.PK_Project_Nr, 
       p.Project_Name, 
       SUM(a.Hours) AS Combined_Hours
FROM project p JOIN
     activity a
     ON p.PK_Project_Nr = a.FK_Project_Nr 
WHERE p.Project_Status = 'A'
GROUP BY p.Project_Nr ASC
HAVING SUM(a.Hours) >= 1000;