使用sum和group在SQL中查询

Man*_*pig 2 sql-server group-by sum max

我想从多个表中选择多个数据,因此我使用join来获取这些数据,并且根据这些数据,我希望有一组代码,并且每个代码的总数都是组合在一起的.我尝试使用SUM(),MAX()以及GROUP BY我怎么得到每个组的错误总和.

当没有sum和max和group时,我的数据结果如下所示:

查询是:

SELECT DISTINCT 
t17.acctcode,
(pcchrgamt)  
FROM 
hpatchrg AS t3 INNER JOIN 
hcharge AS t17 ON t3.chargcode = t17.chrgcode INNER JOIN
Codes AS t14 ON t17.uacs = t14.accCode

WHERE acctno = '2007-000025486'
Run Code Online (Sandbox Code Playgroud)

结果是:

acctcode    pcchrgamt
613 RECORDS 56.00
613 RECORDS 60.00
631 CSR     56.00
631 CSR     60.00
631 CSR     74.00
631 CSR     88.40
643         2.00
643         3.00
643         4.00
643         6.00
643         8.75
643         10.00
643         11.40
643         39.75
643         40.00
643         41.60
643         44.00
643         47.10
643         49.00
643         50.50
643         80.00
643         80.50
643         88.00
643         96.00
643         100.00
643         106.35
643         109.95
643         132.00
643         192.00
643         878.50
643         2465.00
643         4930.00
Run Code Online (Sandbox Code Playgroud)

当我把SUMMAXGROUP BY,代码看起来像:

SELECT DISTINCT 
t17.acctcode AS acctcode,
SUM(pcchrgamt) AS pcchrgamt  
FROM 
hpatchrg AS t3 INNER JOIN 
hcharge AS t17 ON t3.chargcode = t17.chrgcode INNER JOIN 
Codes AS t14 ON t17.uacs = t14.accCode

WHERE acctno = '2007-000025486'  
GROUP BY acctcode
Run Code Online (Sandbox Code Playgroud)

结果是:

acctcode    pcchrgamt
631 CSR         4454.40
613 RECORDS     1856.00
643             20813073.75
Run Code Online (Sandbox Code Playgroud)

分组是正确的,但总和是如此.我希望总和只是为了613 RECORDS是,116.00但它是远离.我也试过Sub查询但是现在它出错了,我还在努力.

我希望有人可以指出查询中的错误.

And*_*mar 6

一目了然,可以distinct在第二个查询之后处理group by?尝试将其移动到子查询:

SELECT  acctcode
,       SUM(pcchrgamt)
FROM    (
        SELECT  DISTINCT t17.acctcode
        ,       pcchrgamt
        FROM    hpatchrg AS t3
        JOIN    hcharge AS t17 ON t3.chargcode = t17.chrgcode
        JOIN    Codes AS t14 ON t17.uacs = t14.accCode
        WHERE   acctno = '2007-000025486'
        ) sub
GROUP BY
        acctcode
Run Code Online (Sandbox Code Playgroud)