Résultat qui sortent en double voir en triple

Fermé
Krampouz35 - 2 juin 2020 à 18:27
 Krampouz35 - 3 juin 2020 à 17:42
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 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 Ambassadeur 1 550
3 juin 2020 à 10:04
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
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 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 550 > Krampouz35
3 juin 2020 à 14:42
il me semble que les deux clauses GROUP BY sont inutiles.
0
Krampouz35 > yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024
3 juin 2020 à 16:17
Oui je suis d'accord je les avais ajouté pour voir si les doublons disparaissaient
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 550 > Krampouz35
3 juin 2020 à 16:31
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 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024
3 juin 2020 à 17:42
j'ai rajouté aussi pensant que mon problème venait de la aussi.
Oui je vais tester cela merci.
0