简体   繁体   English

SQL查询第二个求和列的平方结果

[英]SQL Query Second sum column squaring results

If I run 2 queries separately I get results like this.. 如果我分别运行2个查询,我将得到如下结果。

 select A.ACTNUMST, sum(B.EXTDCOST) as [IV Total]
 from GL00105 A
 INNER JOIN SEE30303 B on A.ACTINDX = B.IVIVINDX
 group by A.ACTNUMST

 Results -
 Account No      IV Total
 2101-00-137     2033.60
 4101-00-137     83765.86
 6101-00-137     301984.23

Second Query 第二查询

 select A.ACTNUMST as [Account No], SUM(C.PERDBLNC) as [GL Total]
 from GL00105 A
 LEFT JOIN GL10110 C on A.ACTINDX = C.ACTINDX
 group by A.ACTNUMST

 Results -
 Account No      GL Total
 2101-00-137     2033.60
 4101-00-137     83765.86
 6101-00-137     302656.23

I want to be able to join both results together to compare but I believe it is repeating the sum for each line in the GL total and then summing it again, it comes out with large numbers like - 我希望能够将两个结果结合在一起进行比较,但是我相信它会重复GL总和中每一行的总和,然后再次对其求和,得出的数字很大,例如-

 select A.ACTNUMST as [Account No], sum(B.EXTDCOST) as [IV Total], SUM(C.PERDBLNC) as [GL Total]
 from GL00105 A
 INNER JOIN SEE30303 B on A.ACTINDX = B.IVIVINDX
 LEFT JOIN GL10110 C on A.ACTINDX = C.ACTINDX
 group by A.ACTNUMST

 Results -
 Account No      IV Total        GL Total
 2101-00-137     2033.60         14235.20
 4101-00-137     83765.86        116350696.20
 6101-00-137     301984.23       1612897825.84

When it should be 什么时候应该

 Results -
 Account No      IV Total        GL Total
 2101-00-137     2033.60         2033.60
 4101-00-137     83765.86        83765.86
 6101-00-137     301984.23       302656.23

Please advise how to use the sum function to get the correct results. 请告知如何使用求和功能以获得正确的结果。

Do you want something like this? 你想要这样的东西吗? Please check and comment if this is not what is expected. 如果这不是预期的,请检查并评论。

Also please rectify any syntax errors. 另外,请纠正所有语法错误。

SELECT T1.[Account No], T1.[IV Total], T2.[GL Total] FROM
(
    select A.ACTNUMST as [Account No], sum(B.EXTDCOST) as [IV Total]
    from GL00105 A
    INNER JOIN SEE30303 B on A.ACTINDX = B.IVIVINDX
    group by A.ACTNUMST
) T1
INNER JOIN
(
    select A.ACTNUMST as [Account No], SUM(C.PERDBLNC) as [GL Total]
    from GL00105 A
    LEFT JOIN GL10110 C on A.ACTINDX = C.ACTINDX
    group by A.ACTNUMST
) T2
ON T1.[Account No] = T2.[Account No]

Hope this helps 希望这可以帮助

this can be done with the multiple cte also 这也可以通过多个CTE完成

 with IVTotal as
 (
     select A.ACTNUMST, sum(B.EXTDCOST) as [IV Total]
     from   GL00105 A
     INNER  JOIN SEE30303 B 
     on     A.ACTINDX = B.IVIVINDX
     group  by A.ACTNUMST
 ),  
 GLTotal as 
 (
     select A.ACTNUMST as [Account No], SUM(C.PERDBLNC) as [GL Total]
     from   GL00105 A
     LEFT   JOIN GL10110 C 
     on     A.ACTINDX = C.ACTINDX
     group  by A.ACTNUMST
 )
 select a.*,b.[GL Total] 
 from   IVTotal a ,GLTotal b
 where  a.ACTNUMST =  b.aCTNUMST

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM