0

私は 2 つのテーブルを持っています。1 つは収益データを含み、もう 1 つはアカウント データを含みます。アカウント データには、アカウントごとに複数の行が含まれています。FactPlanNo 327865 に対して割り当てられた収益値は $65,000 です。このアカウントの 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 に答える