Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2791 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [resolu] pb de requête avec clause 'distinct'

 

Sujet(s) à lire :
    - [SQL] Distinct
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] pb de requête avec clause 'distinct'

n°1103158
denzz
huhuuuuu ! (désolé )
Posté le 31-05-2005 à 16:53:17  profilanswer
 

Salut à tous..
j'ai un problème de requêtage surement très con, mais impossible de trouver une solution...
je cherche à éliminer des doublons sur certains champs lors de ma requête, mais pas sur les autres ...
 
Voici ma requête :  

Code :
  1. SELECT distinct mv.MODVERSION_PREFIX as branche, mv.MODVERSION_ID as ID, mv.MODULE_ID as MODULE_ID from CVS_MODULE_VERSION mv, where mv.MODULE_ID = 20


 
et le résultat renvoyé :
 
| branche  | id | module_id |
_____________________________
| actu_1_0 | 20 | 20        |
| actu_1_1 | 98 | 20        |
| actu_1_1 | 99 | 20        |
-----------------------------
 
j'explique :  
mon but est d'obtenir les champs 'id' correspondant aux branche, mais je veux éliminer tous les doublons de branche au préalable. Or la clause distinct influe sur tous les champs de ma requête, ce qui fait qu'ici j'ai toutes les branches différentes ET tous les id différents satisfaisant mes clauses .
 
en gros il me faut ca :
| branche  | id | module_id |
_____________________________
| actu_1_0 | 20 | 20        |
| actu_1_1 | 98 | 20        |
| actu_1_1 | 99 | 20        |
-----------------------------
 
les différentes solutions que j'ai pu tenter ne me satisfont jamais .... help !!
(sachant que ma requête est pas optimisée, ca je sais, et que le champ 'module_id' ne sert à rien non plus, c pas grave ca fait joli)


Message édité par denzz le 01-06-2005 à 10:24:30
mood
Publicité
Posté le 31-05-2005 à 16:53:17  profilanswer
 

n°1103186
betsamee
Asterisk Zeperyl
Posté le 31-05-2005 à 17:02:52  profilanswer
 

select Branche,min(id) from Tbl
group by Branche

n°1103201
denzz
huhuuuuu ! (désolé )
Posté le 31-05-2005 à 17:09:39  profilanswer
 

betsamee a écrit :

select Branche,min(id) from Tbl
group by Branche


 
 :jap:  :jap:  
merci de ta réponse, mais ... elle me paraît fausse, et après test, ...
elle l'est  :pfff:  :pfff:  
je sens que je v devoir revoir mon modèle de données  :cry:  

n°1103663
denzz
huhuuuuu ! (désolé )
Posté le 01-06-2005 à 09:11:47  profilanswer
 

g rien dit :)  
 
select distinct Branche,min(id) from Tbl
group by Branche <= ca ca fait ce que je veux

n°1103670
Spir
Words are timeless
Posté le 01-06-2005 à 09:17:03  profilanswer
 

En fait tu récupère les plus petite id pour chaque branche. C'est ca? (j'essaye de comprendre le min).


Message édité par Spir le 01-06-2005 à 09:17:13
n°1103803
denzz
huhuuuuu ! (désolé )
Posté le 01-06-2005 à 10:22:34  profilanswer
 

effectivement.
ce qui me permet d'avoir a chaque branche un et un seul id en face.  
sachant que ce n'est pas très très clean, mais au vu de l'utilisation que je fais de ma base ca me fait ce que je veux, donc no problémo.

n°1104118
betsamee
Asterisk Zeperyl
Posté le 01-06-2005 à 14:24:26  profilanswer
 

je vois pas trop pourquoi tu rajoutes un distinct

n°1104158
denzz
huhuuuuu ! (désolé )
Posté le 01-06-2005 à 14:55:05  profilanswer
 

cf haut de page et lien 'sujet à lire', je v pas refaire mon méaculpa ..

n°1104430
Spir
Words are timeless
Posté le 01-06-2005 à 17:18:56  profilanswer
 

Ouais moi non + je ne comprend. sachant qu'ID est surement une clé primaire donc pas de doublon donc a priori, logiquement sans DISTINCT ca devrait fonctionner.

n°1104440
betsamee
Asterisk Zeperyl
Posté le 01-06-2005 à 17:22:31  profilanswer
 

c'est surtout par rapport au group by

mood
Publicité
Posté le 01-06-2005 à 17:22:31  profilanswer
 

n°1104448
Spir
Words are timeless
Posté le 01-06-2005 à 17:23:38  profilanswer
 

Nan là je ne voi pas non +. pourquoi un GROUP BY enlèverai les doublons?

n°1104561
betsamee
Asterisk Zeperyl
Posté le 01-06-2005 à 19:50:26  profilanswer
 

c'est clair que faire une group by sur un champ defini en leve les doublons sur ce champ!
si je dis : donne moi le id minimum par branche il ne va me donner qu'un resultat par branche
J'ai teste ma requete sur tes trois entrees et ca marche tres bien
le distinct n'a aucune utilite du fait du group by

n°1104993
Zachenko
Posté le 02-06-2005 à 10:34:56  profilanswer
 

C'est le MIN + le GROUP BI qui font l'unicité. :bounce:

n°1105263
betsamee
Asterisk Zeperyl
Posté le 02-06-2005 à 12:50:25  profilanswer
 

de toutes les manieres un grup by est impossible sans une fonction d'aggregation


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [resolu] pb de requête avec clause 'distinct'

 

Sujets relatifs
[SQL] Distinct[resolu]probleme des saut d'image sous excel
requete SQL avec condition sur SUMrequète pr compter le nb de fois qu'apparait un nbre
Encore un probleme de requete SQL[RESOLU] Chemin d'accès valide... ou pas.
[résolu] pb avec une page phpbouton sous excel et macro [résolu]
[ASP] Problème de declaration de tableau [Résolu][résolu] appeller une nouvelle page dynamiquement
Plus de sujets relatifs à : [resolu] pb de requête avec clause 'distinct'


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR