Aide : requete SQL

Joker_ Messages postés 190 Statut Membre -  
newkiss Messages postés 145 Statut Membre -
Bonjour,


Je travaille avec une base de donnée SQL server, J'ai la table suivante
ID | Nom
-----------
10| Alex
20| Robert
30| Sonia
10|'Michel
30| Mike
20| Nicolas

En fait chaque ID est associé à deux Noms!
Je veut que vous m'aider à exécuter une requête SQL permettant d'afficher cette résultat:
ID | Nom1..|Nom2
------------------------
10| Alex....|Michel
20| Robert|Nicolas
30| Sonia |Mike


Merci d'avance

3 réponses

mathew76 Messages postés 170 Statut Membre 64
 
Bonjour

avoir deux colonnes de noms me parait difficile en revanche tu peux faire ca :

select * from tatable order by Id;


ca va te donner :

10| Alex
10| Michel
20| Robert
20| Nicolas
30| Sonia
30| Mike

Bonne journée

Ps : je regarde si c'est possible de faire sur deux colonnes et je te tiens informer.
0
newkiss Messages postés 145 Statut Membre 13
 
avec MYSQL tu aurais pu faire

SELECT  
   id, 
   GROUP_CONCAT(nom) 
FROM maTable 
GROUP BY id


Sous SQL serveur tu pourrais écrire une procédure stockée ou fonction en T-SQL
0
Joker_ Messages postés 190 Statut Membre 1
 
Merci de me répondre,

newkiss, veillez me plus informer a propos du procédure 'GROUP_CONCAT(nom)'
0
newkiss Messages postés 145 Statut Membre 13
 
Voici une explication du GROUP_CONCAT en MySQL
http://blog.maiis.ch/2008/09/30/mysql-fonction-group_concat/

En SQL Server, il faudrait créer une fonction "GROUP_CONCAT"

qui prendrai en paramètre ton id et la colonne que tu souhaite concaténer et qui retournerai une chaines avec tous les valeurs de cette colonne

du coup tu pourrais effectuer cette requête
SELECT  
   id, 
   GROUP_CONCAT(id,"nom")  as noms
FROM maTable 
GROUP BY id


pour avoir ce résultat par exemple


ID | Noms
-----------
10| Alex - Michel
20| Robert - Nicolas
30| Sonia - Mike


Je vais essayer de t'écrire la fonction demain si tu n'y arrive pas.
0