IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Regroupement par deux champs dans une requete


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut Regroupement par deux champs dans une requete
    Bonjour, j'ai une requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select distinct ST2.Secteur, 
    substring((Select ','+ST1.Qualifs AS [text()]
    From dbo.Qualifications ST1
    Where ST1.Secteur = ST2.Secteur 
    ORDER BY ST1.Secteur
    For XML PATH ('')),2, 1000) [Qualifications]
    From dbo.Qualifications ST2
    il me donne :
    Secteur Qualifs
    1 x,y,z
    2 p

    sur des données de types
    Secteur Qualifs catégorie
    1 x 3
    1 y 3
    1 z 4
    2 p 3

    je veux ajouter le regroupement par classe de telle sorte a ce que je recoive :
    Secteur Qualifs catégorie
    1 x,y 3
    1 z 4
    2 p 3
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Il suffit de le rajouter dans la jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    DECLARE @t TABLE
    (
    	Secteur tinyint
    	, Qualifs char(1)
    	, Categorie tinyint
    )
     
    INSERT INTO @t
    (
    	Secteur
    	, Qualifs
    	, Categorie
    )
    VALUES (1,'x',3)
    	, (1,'y',3)
    	, (1,'z',4)
    	, (2,'p',3)
     
     
    SELECT		DISTINCT T.Secteur
    		, T.Categorie
    		, LEFT(S.Qualifs, LEN(S.Qualifs) - 1) AS Qualifs
    FROM		@t AS T
    CROSS APPLY	(
    			SELECT	Qualifs + ','
    			FROM	@t AS S
    			WHERE	S.Secteur = T.Secteur
    			AND	S.Categorie = T.Categorie
    			FOR	XML PATH('')
    		) AS S(Qualifs)
    @++

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Concaténer le contenu d'un champ dans une requete de regroupement
    Par Jeannot45 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/04/2013, 07h49
  2. Utiliser deux bases dans une requete, possible ?
    Par compu dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/02/2006, 15h09
  3. Création de champ dans une requete
    Par CCRNP dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 23h15
  4. [MySQL] Liste déroulante contenant deux champs d'une requete
    Par budiste dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/10/2005, 12h21
  5. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo