Doublons dans INNER JOIN [Résolu]

leviz 68 Messages postés jeudi 20 octobre 2005Date d'inscription 10 juin 2008 Dernière intervention - 22 févr. 2007 à 02:48 - Dernière réponse : leviz 68 Messages postés jeudi 20 octobre 2005Date d'inscription 10 juin 2008 Dernière intervention
- 23 févr. 2007 à 22:46
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
leviz 68 Messages postés jeudi 20 octobre 2005Date d'inscription 10 juin 2008 Dernière intervention - 23 févr. 2007 à 22:46
3
Merci
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
";

Merci leviz 3

codes-sources a aidé 87155 internautes ce mois-ci

Commenter la réponse de leviz
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 23 févr. 2007 à 21:25
0
Merci
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.
Commenter la réponse de nhervagault
leviz 68 Messages postés jeudi 20 octobre 2005Date d'inscription 10 juin 2008 Dernière intervention - 23 févr. 2007 à 22:44
0
Merci
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!
Commenter la réponse de leviz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.