







|
|
|
 |
| > Requette SQL |
[ Posté par Extraterrestre ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 03-11-2008 à 18:56 | 34 messages ]
  Bonjour à tous,
je voudrais écrire une requette SQL qui permet de prendre les enregistrements contenus dans une base, mais pour lesquels le champs Club doit être différent.
C'est à dire que si ma base de départ est :
NOM Prénom Club
AAAA aaaaa Toulouse
BBBB bbbb Lyon
CCCC cccccc Toulouse
DDDD dddddd Paris
je voudrais en extarire :
NOM Prénom Club
AAAA aaaaa Toulouse
BBBB bbbb Lyon
DDDD dddddd Paris
(Si deux club sont identiques, par défaut je prends le premier que je trouve dans la base)
J'ai vu qu'il y avait des commandes comme DISTINCT ou SORT BY, le problème c'est que on ne peut les utiliser que avec un seul champ de l'enregistrement, alors que moi je voudrais conserver le champs compler ...
J'espère que ma question est claire.
Merci d'avance de vos réponses
 
|
[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 04-11-2008 à 09:58 | 4024 messages ]
  en Oracle ce serait
select A,B,C,D,E,...,Z,min(club) from table group by A,B,C,D,E,...,Z
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
| [ Posté par Extraterrestre ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 04-11-2008 à 16:32 | 34 messages ]
  à quoi correspondent les lettres A, B, C ...
aux noms des colonnes ??
| [ Posté par EricM ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 06-11-2008 à 10:00 | 4255 messages ]
  Bonjour,
c'est plutôt le contraireselect club, min(NOM)
from la_table
group by club; |
|
A+
________________ L'échec est le fondement de la réussite.
- Lao Tseu -
| [ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 06-11-2008 à 11:18 | 4024 messages ]
 
EricM a dit
Bonjour,
c'est plutôt le contraireselect club, min(NOM)
from la_table
group by club; |
|
A+ |
|
exact ; j'avais mal lu.
remarque s'il y a plusieurs colonnes il ne faut pas faire le min sur les colonnes séparément
min(nom),min(prenom),club
Alain Bernard Toulouse
Didier Chose Toulouse
donnerait
Alain Chose Toulouse
faire plutôt min(nom + ", " + prenom),club
mais on se retrouve alors avec une colonne unique au lieu de n
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
| [ Posté par Extraterrestre ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 06-11-2008 à 16:17 | 34 messages ]
  Comme tu le dis, le problème est que à la fin je n'obtient qu'un seul champs, or moi j'ai besoin de garder tous les champs distincts
| [ Posté par EricM ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 06-11-2008 à 16:43 | 4255 messages ]
  Faut tout lire 
select club, min(NOM || ' ' || PRENOM)
from la_table
group by club; |
|
Pas moyen de faire autrement en une seule requête ...
A+
________________ L'échec est le fondement de la réussite.
- Lao Tseu -
| [ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 07-11-2008 à 11:09 | 4024 messages ]
  si tu as un index unique pour ta table (disons id)
id prenom nom ...champ x... club
1 marcel chose ... ... toulouse
...
247 etienne truc ... ... toulouse
...
tu peux faire
select matable.* from
matable
(
select
min(id) as id,club
club
from
matable
group by
club
) matable_sans_doublon
where
matable.club = matable_sans_doublon.club
and matable.id = matable_sans_doublon.id
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
|
|
Services email :
  Vous devez vous identifier pour profiter des services par email du forum.
|

|