SUM上的SQL + JOIN [第2部分]

时间:2015-12-08 14:44:19

标签: sql-server

下午好,

我想进一步的建议。关于我之前的问题: SELECT + SUM + LEFT JOIN

我现在需要反过来。

我需要来自Partner表的SELECT * Data,其中(Project Table)中项目的partner_%(来自合作伙伴表)的SUM不是100%。

我不确定如何对此进行编码;我需要加入合作伙伴表。

 SELECT project id, project name, SUM(partner_%) as [Project Partner Total]
    FROM Project Table LEFT JOIN
         [partner table]
         ON project.projectID = partner.projectID
    GROUP BY project id, project name
    HAVING SUM(partner_%) <> 100;

编辑:

所以我需要从合作伙伴表中获取合作伙伴信息,其中partner_%的SUM不等于项目的100。

1 个答案:

答案 0 :(得分:2)

您应该首先使用内部查询来获取项目。然后你可以加入合作伙伴。

如果您尝试在一个联接中执行此操作,则会遇到分组问题。您只需要对项目进行分组,而不是合作伙伴。

SELECT partner.*, PR.*
FROM partner
INNER JOIN
    (SELECT project id, project name, SUM(partner_%) as [Project Partner Total]
    FROM Project
    LEFT JOIN partner ON project.projectID = partner.projectID
    GROUP BY project id, project name
    HAVING SUM(partner_%) <> 100) PR
ON PR.projectID = partner.projectID