Sql server SQL+求和连接[第2部分]
下午好 我想要一些进一步的建议。关于我先前的问题: 我现在需要做相反的事情 我需要从Partner表中选择*数据,其中project表中某个项目的Partner表中Partner%的总和不是100% 我不知道如何编写这个代码;我需要加入partner表Sql server SQL+求和连接[第2部分],sql-server,Sql Server,下午好 我想要一些进一步的建议。关于我先前的问题: 我现在需要做相反的事情 我需要从Partner表中选择*数据,其中project表中某个项目的Partner表中Partner%的总和不是100% 我不知道如何编写这个代码;我需要加入partner表 SELECT project id, project name, SUM(partner_%) as [Project Partner Total] FROM Project Table LEFT JOIN [par
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表中获取partner信息,其中partner的总和不等于项目的100。您应该首先使用内部查询来获取项目。然后你可以加入合伙人
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
如果您尝试在一个联接中执行此操作,您将在分组方面遇到问题。您只需要对项目进行分组,而不需要对合作伙伴进行分组
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
你的代码怎么了?您是否有错误?我看不出您的查询有任何问题,除了您的having条件可能只是SUMpartner_uu%<100;以上代码运行良好;然而,“反向”是指我需要从partner表中获取partner信息,其中partner_%的总和不等于项目的100%。在SELECT和GROUP by子句中添加project表的必填字段。partner_%位于partner表中;这给了我通常的“无法绑定”错误消息?我发现,如果我将Partner表添加到内部联接的FROM部分,那么所有行的总和都返回值3417739.77:好的,我不知道,请提供有问题的表的结构。无论如何,我在查询中又添加了一个连接,以问题中的示例为例。方法是一样的:首先得到正确的项目,然后找到合作伙伴。