Doublons dans INNER JOIN [Résolu]

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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de leviz
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 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
Messages postés
68
Date d'inscription
jeudi 20 octobre 2005
Dernière intervention
10 juin 2008
- 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.