Résultat qui sortent en double voir en triple

Krampouz35 -  
 Krampouz35 -
Bonjour à tous et à toutes,

Voici mon petit problème,

J'ai une requête suivante
SELECT DISTINCT users.username, contrat.*, contrat.id AS idrow, CONCAT(contrat.annee_contrat, '-', contrat.id_gt, '-') AS numcc, type_contrat.* FROM contrat 
						INNER JOIN type_contrat ON contrat.id_type = type_contrat.id 
						INNER JOIN rcaisse ON contrat.id_rayon = rcaisse.id 
						INNER JOIN users_rcomptable ON rcaisse.id_rcompt = users_rcomptable.id_rcomptable 
						INNER JOIN users ON users_rcomptable.id_users = users.id  WHERE contrat.id_rayon IN (SELECT DISTINCT rcaisse.id FROM rcaisse 
								INNER JOIN users_rcomptable ON rcaisse.id_rcompt = users_rcomptable.id_rcomptable 
								INNER JOIN users ON users_rcomptable.id_users = users.id  
								WHERE users.username = :username GROUP BY rcaisse.id, rcaisse.id_rcompt, users.username) AND contrat.actif = 'oui' GROUP BY idrow, contrat.num_contrat


Je ne comprends pas pourquoi mais j'ai deux fois voir trois fois les mêmes occurences...

Un âme charitable peut -il m'aider ?

Merci d'avance


Configuration: Windows / Chrome 73.0.3683.86
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
les occurrences en double ou triple ont-elles exactement le même contenu pour tous les champs?
comment en es-tu arrivé à faire une requête si compliquée?
dans quel contexte fais-tu cela?
quel est ton niveau de connaissance en SQL?
0
Krampouz35
 
Bonjour yg_be,
Oui les contenus sont exactement les mêmes pour chaque occurrences.
J'ai été, dans ma jeunesse très calé en SQL, ayant changé de profession depuis plus de 10 ans, je suis maintenant en comptabilité, je dirais moyen bas.
Je suis en train de faire un "datatable" énumérant des contrats. aujourd'hui c'est fait par fichier Excel c'est une galère sans nom...
Je fais des tests ^^.
La personne qui se connecte, en allant sur le datatable ne voit que ses contrats en fonctions des "rcaisse" qu'il possède.
La table jointure est users_rcomptable sachant qu'une personne peut avoir plusieurs rcaisse
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Krampouz35
 
il me semble que les deux clauses GROUP BY sont inutiles.
0
Krampouz35 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui je suis d'accord je les avais ajouté pour voir si les doublons disparaissaient
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Krampouz35
 
je suggère de tester en réduisant le nombre de champs retournés par la requête, afin de découvrir ce qui ajoute les doublons.
par ailleurs, je trouve suspect que tu doives ajouter DISTINCT, cela est souvent signe d'un défaut de conception.
0
Krampouz35 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
j'ai rajouté aussi pensant que mon problème venait de la aussi.
Oui je vais tester cela merci.
0