0

我有 2 个表,一个包含收入数据,另一个包含帐户数据 - 帐户数据包含每个帐户的多行......分配给 FactPlanNo 327865 的收入值是 65,000 美元,这是我想要显示的,但是因为有 4此帐户的 RefGPNRoleMapping 表中的行,它将 65,000 美元乘以 4

如何阻止这种情况发生,以便返回以下结果:

    AccountNumber     AccountName       Rev
    0123456           MyAccount         65000 (instead of 260,000)

我目前有这个查询:

   select
   b.AccountNumber,
   b.AccountName,
   sum(a.Revenue) as rev
   from mdfl.FactPlanNo a
   inner join xyz.RefGPNRoleMapping b on
   a.FactPlanNo = b.FactPlanNo
   where b.FactPlanNo = '327865'
   group by b.AccountNumber, b.AccountName
4

1 回答 1

0
/* Revenue per "FactPlanNo" */
SELECT FactPlanNo
     , Sum(Revenue) As rev
FROM   mdfl.FactPlanNo
GROUP
    BY FactPlanNo

/* Make it a subquery and join to that! */
SELECT b.AccountNumber
     , b.AccountName
     , revenues.rev
FROM   (
        SELECT FactPlanNo
             , Sum(Revenue) As rev
        FROM   mdfl.FactPlanNo
        GROUP
            BY FactPlanNo
       ) As revenues
 LEFT
  JOIN xyz.RefGPNRoleMapping As b
    ON b.FactPlanNo = revenues.FactPlanNo
WHERE  b.FactPlanNo = '327865'
于 2013-11-05T16:40:35.390 回答