Doublons dans INNER JOIN [Résolu]

Signaler
Messages postés
68
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
10 juin 2008
-
Messages postés
68
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
10 juin 2008
-
Hello!


Voila mon problème :


J'ai deux tables :
TblCollectList
et
TblCollectNotes



C'est tables ont le champ AccNo en commun et je les joint a l'aide d'un
INNER JOIN
.


Jusqu'à là tout va bien. L'inconvénient c'est que si j'ajoute le champ
Category
de la table
TblCollectNotes
, j'ai des doublons que je n'arrive pas à éliminer avec un
DISTINCT.


Quelqu'un saurait comment faire afin que je n'ai pas ces doublons??


Voici ma requêtes:

SELECT
TblCollectList.AccNo,TblCollectList.CustomerName,
TblCollectList.Lang,TblCollectList.SumOfAmountDue,
TblCollectList.ActDate,
TblCollectNotes.Category
,MAX(TblCollectNotes.NoteID)

 

FROM TblCollectList,TblCollectNotes


WHERE TblCollectList.AccNo TblCollectNotes.Accno

AND TblCollectList.[SumOf30-60 Due]=0 AND TblCollectList.[SumOf60-90
Due]=0 AND TblCollectList.[SumOf90-120 Due]=0 AND
TblCollectList.[SumOf120-150 Due]=0 AND TblCollectList.[SumOf150-180
Due]=0 AND TblCollectList.[SumOf>180 Due]=0


GROUP BY TblCollectList.AccNo,TblCollectList.CustomerName,

TblCollectList.Lang,TblCollectList.SumOfAmountDue,TblCollectList.ActDate,

TblCollectNotes.Category





ORDER BY TblCollectList.CustomerName
A voir également:

3 réponses

Messages postés
68
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
10 juin 2008

La bonne réponse était :

$QueryCustomer = "SELECT C.AccNo, CustomerName, Lang, SumOfAmountDue, ActDate, B.MaxID, D.Category
FROM TblCollectList C
LEFT OUTER JOIN
 (
  SELECT AccNo, max(NoteID) As MaxID FROM TblCollectNotes
  Group by AccNo
 ) B ON B.AccNo = C.AccNo
LEFT OUTER JOIN
 (
  SELECT NoteID, Category FROM TblCollectNotes
 ) D ON D.NoteID = B.MaxID
WHERE SumOfAmountDue<>0 AND [SumOf30-60 Due]=0 AND [SumOf60-90 Due]=0 AND [SumOf90-120 Due]=0 AND [SumOf120-150 Due]=0 AND [SumOf150-180 Due]=0 AND [SumOf>180 Due]=0
";
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
Salut

Ta requete n'a pas de inner join, elle fait un produit cartesien.

Peux-tu mettre un tableau ou un script de 3 4 enregistrement qui produit ton probleme pour mieux analyser.
Messages postés
68
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
10 juin 2008

J'ai résolu mon problème,  je vous remercie! J'avais simplement oublié de mettre une condition dans ma clause WHERE et j'ai aussi oublié de mettre la clause INNER JOIN dans mon exemple (sorry).

Thank you very much guys!