从表中选择数据并使用相同ID的SUM数量

时间:2014-07-22 05:50:20

标签: oracle oracle10g sum sql

我正在尝试根据另一列的重复外观选择列的总和,这是我的选择:

SELECT  T1.GEST,T2.CODINTERN,T3.REST, SUM(T3.REST) AS Suma  
FROM mydb.t3

INNER JOIN mydb.t2 ON 
              mydb.t3.CODOBIECT = mydb.t2.CODOBIECT 
INNER JOIN mydb.1 ON 
              mydb.t3.CODNIR=mydb.t1.CODNIR 
WHERE T1.gest=738 and T3.REST>0 
GROUP BY T2.CODINTERN, T1.GEST, T3.REST;

这是我得到的输出:

 CODINTERN    Gest      REST   Suma
    1005       738        58     58
    1022       738         9      9
    1066       738        25     25
    1066       738        11     11
    1068       738       283    283

按功能分组似乎不起作用,因为我得到每行的总和。关于如何提高我的选择的任何想法都高度赞赏。

预期结果:

如果CODINTERN重复,我想总结REST并删除重复的项目。

 CODINTERN     Gest      REST   Suma
    1005       738         58     58
    1022       738          9      9
    1066       738         36     36
    1068       738        283    283

1 个答案:

答案 0 :(得分:1)

我的猜测是你不应该用你正在总结的t3.rest进行分组

SELECT  T1.GEST,T2.CODINTERN, SUM(T3.REST) AS Suma  
FROM mydb.t3

INNER JOIN mydb.t2 ON 
              mydb.t3.CODOBIECT = mydb.t2.CODOBIECT 
INNER JOIN mydb.1 ON 
              mydb.t3.CODNIR=mydb.t1.CODNIR 
WHERE T1.gest=738 and T3.REST>0 
GROUP BY T2.CODINTERN, T1.GEST;