Pb language sql

Emmanuel -  
 Emmanuel -
Bonjour,

je n'arrive pas à obtenir une seule ligne pour la réponse à la formule suivante. (je voudrais n'avoir qu'une ligne dans la colonne NO_CNG pour valeur 51) . Comment faire?

SELECT TOP (100) PERCENT dbo.CLTNEG.NO_CNG AS numero_compte, COUNT(DISTINCT dbo.totaldosneg.TOTI_DNG) AS facture_n
FROM dbo.CLTNEG INNER JOIN
dbo.totaldosneg ON dbo.CLTNEG.NO_CNG = dbo.totaldosneg.CNG1_DNG
WHERE (dbo.totaldosneg.DATF_DNG >= '20060101') AND (dbo.totaldosneg.DATF_DNG <= '20061231') OR
(dbo.totaldosneg.DATF_DNG >= N'20060101') AND (dbo.totaldosneg.DATF_DNG <= N'20061231')
GROUP BY dbo.CLTNEG.CP_CNG, dbo.totaldosneg.CNG1_DNG, dbo.CLTNEG.NO_CNG, dbo.CLTNEG.NO_CNG, dbo.CLTNEG.CP_CNG,
dbo.totaldosneg.DOC_DNG
HAVING (dbo.totaldosneg.DOC_DNG = '3') AND (dbo.CLTNEG.NO_CNG = N'51') OR
(dbo.totaldosneg.DOC_DNG = '4') AND (dbo.CLTNEG.NO_CNG = N'51')
A voir également:

2 réponses

Christounet Messages postés 1266 Statut Membre 1 393
 
Bonjour

Je pense que tu dois rajouter des parenthèses pour avoir une condition OR

SELECT TOP (100) PERCENT dbo.CLTNEG.NO_CNG AS numero_compte, COUNT(DISTINCT dbo.totaldosneg.TOTI_DNG) AS facture_n
FROM dbo.CLTNEG INNER JOIN
dbo.totaldosneg ON dbo.CLTNEG.NO_CNG = dbo.totaldosneg.CNG1_DNG
WHERE ((dbo.totaldosneg.DATF_DNG >= '20060101') AND (dbo.totaldosneg.DATF_DNG <= '20061231')) OR
((dbo.totaldosneg.DATF_DNG >= N'20060101') AND (dbo.totaldosneg.DATF_DNG <= N'20061231'))
GROUP BY dbo.CLTNEG.CP_CNG, dbo.totaldosneg.CNG1_DNG, dbo.CLTNEG.NO_CNG, dbo.CLTNEG.NO_CNG, dbo.CLTNEG.CP_CNG,
dbo.totaldosneg.DOC_DNG
HAVING ((dbo.totaldosneg.DOC_DNG = '3') AND (dbo.CLTNEG.NO_CNG = N'51')) OR
((dbo.totaldosneg.DOC_DNG = '4') AND (dbo.CLTNEG.NO_CNG = N'51'))

Salut
0
Emmanuel
 
Désolé mais ça ne marche pas mieux, j'ai toujours 2 lignes : comment peut on supprimer tous les doublons sur SQL?
0