SQL WHERE SUM(value)来自表中哪个值是不同的?

时间:2017-04-28 08:14:36

标签: sql sum distinct where

我知道标题很奇怪,但我真的不知道解释我的问题。 我的申请中存在问题,我必须更改此请求。

    SELECT DISTINCT utilisateurs.id, nom, prenom, SUM(pointages.nombre) as heuresConsommees
                        FROM utilisateurs
                        INNER JOIN pointages on pointages.cp = utilisateurs.cp                      
                        WHERE pointages.idPrestation = %d
                        AND pointages.id_affaire = %d
                        AND utilisateurs.id = %d
                        GROUP BY utilisateurs.nom,prenom, utilisateurs.id

我的问题是,pointages.nombre的值可以在数据库中插入两次,用于相同的affaire,prestation和week。 我无法修改允许此双重插入的请求而不修改我的应用程序的所有体系结构,所以我想知道是否可以选择值pointages.nombre的总和但不再进行第二次。可能与一个截然不同但我不知道如何做这种情况。 先谢谢。

1 个答案:

答案 0 :(得分:0)

从内部查询中删除了Group by并使用内部查询来获取不同的行

试试这个: -

SELECT id, num,prenom,SUM(nombre) as heuresConsommees
from
( 
SELECT DISTINCT utilisateurs.id, nom, prenom, pointages.nombre
                        FROM utilisateurs
                        INNER JOIN pointages on pointages.cp = utilisateurs.cp                      
                        WHERE pointages.idPrestation = %d
                        AND pointages.id_affaire = %d
                        AND utilisateurs.id = %d
) a
Group by id, num,prenom;