Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/10/2011, 21h20   #1
Invité régulier
 
Inscription : septembre 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 51
Points : 6
Points : 6
Par défaut inverser les résultats d'une requete

bonjour,
j'ai la situation suivante:
Select prd, cat From product
Results
Prd cat
1 a
1 b
1 c
2 a

J’aimerai avoir le résultat suivant :
Prd, cat
1 a, b, c
2 a

Dans SQL server
Louisa2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2011, 10h15   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Question maintes fois posées sur ce forum qui je le rappel, a des rêgles...

Merci de chercher un peu.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 10h39   #3
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
Tu fais une requete de sélection de tes "prod", et une sous requete correllée dans laquelle tu concatenes tes "cat"
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 10h55   #4
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
Tu fais une requete de sélection de tes "prod", et une sous requete correllée dans laquelle tu concatenes tes "cat"
J'aimerais voir ça? pouvez vous poster la requête?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/10/2011, 11h05   #5
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
^^
En effet je sens que c'est ce qui va tomber, mais ça ne coûte rien de donner la théorie.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 11h14   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Bon, quelle est votre version de SQL SERVER?

Si >=2005 vous pouvez passer par une CTE recursive...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 19h50   #7
Invité régulier
 
Inscription : septembre 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 51
Points : 6
Points : 6
J,ai sql server 2008 version 10.50.1617.0
SVP, est-ce possible pour vous de me donner la requête?
merci beaucoup de votre aide
Louisa2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 11h13   #8
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
Citation:
Envoyé par iberserk Voir le message
J'aimerais voir ça? pouvez vous poster la requête?
Gagné ...
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 13h38   #9
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 118
Points : 5 118
Comme le dit le sage iberserk, une CTE (Common Table Expression) fait l’affaire. Vous pouvez vous inspirer de ceci.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 14h01   #10
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Pour compléter le post vous avez aussi une autre alternative en passant par XML PATH :

Par exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DECLARE @T TABLE
(
 id INT,
 texte VARCHAR(50)
);
 
INSERT @T VALUES (1, 'a');
INSERT @T VALUES (11, 'b');
INSERT @T VALUES (11, 'c');
INSERT @T VALUES (12, 'a');
 
 
SELECT id,
 REPLACE((SELECT  texte + ', '
   FROM @T AS T
   WHERE T.id = T2.id
    ORDER BY id DESC
    FOR XML PATH('')) + '$', ', $', '') AS concat_text
FROM @T AS T2
GROUP BY id;
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h59   #11
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

Pour avoir recommandé l'utilisation d'une CTE récurive et être passé à la solution XML PATH proposée par Mikedavem, je vous conseille fortement d'utiliser cette dernière, qui est bien plus performante

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 23h06   #12
Invité régulier
 
Inscription : septembre 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 51
Points : 6
Points : 6
merci beaucoup pour la réponse.
ma requête fonctionne maintenant
Louisa2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h36.


 
 
 
 
Partenaires

Hébergement Web