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 :

Aide pour PIVOT sur SQL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Par défaut Aide pour PIVOT sur SQL
    Bonjour,

    J'ai besoin d'aide pour faire un pivot sur une de mes tables SQL à destination d'une nouvelle table.

    J’ai ceci :
    AAREF-NUM-COTIS-LIB
    2008-36-0-TOTO
    2008-36-0-TATA

    Moi je voudrais avoir cela :
    AAREF-NUM-COTIS1-LIB1-COTIS2-LIB2
    2008-36-0-TOTO-0-TATA

    Avez vous une idée de comment je dois m'y prendre pour intervertir mes lignes vers mes colonnes ?

    Merci d'avance,

  2. #2
    Membre éclairé Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Par défaut J'ai réussi !
    Au départ en fait, j’ai un fichier texte et pas une table.

    J’ai donc chargé mon fichier dans une table temporaire, avec en plus une colonne, que j’ai appelé « numrow » et qui s’incremente de 1 en 1 pour chaque ligne chargée (fonction « identity(1,1) »)
    Mon "create table" ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE TABLE_TMP (
    numrow int identity(1,1) not null,
    ...
    )
    Voilà la requête SQL que j’ai fait après :
    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
    select 
    req.aaref, 
    req.num,
    tmpfin.cotis as cotis1, 
    tmpfin.lib as lib1,
    case when req.minrow<>req.maxrow
    then (select asscotis.cotis as cotis
    	from TABLE_TMP asscotis
    	where asscotis.numrow = req.maxrow)
    else null
    end as cotis2,
    case when req.minrow<>req.maxrow
    then (select libelle.lib as lib
    	from TABLE_TMP libelle
    	where libelle.numrow = req.maxrow)
    else null
    end as lib2
    
    from ( select tmp.aaref, tmp.noide, 
    		min(tmp.numrow) as minrow, 
    		max(tmp.numrow) as maxrow
    	from TABLE_TMP tmp
    	group by tmp.aaref, tmp.noide
          ) as req 
    inner join 
    TABLE_TMP tmpfin
    on (req.aaref=tmpfin.aaref and req.num=tmpfin.num)
    
    where tmpfin.numrow=req.minrow
    Comme je savais que j'allais avoir au maximum 2 lignes par "aaref+num", j'ai regroupé la ligne min et la ligne max (voir la requete en gras)
    Voilà !

    Remarque : Super SQL Serveur 2000, si seulement j'avais eu le 2005 j’aurais utilisé le "ROW_NUMBER() + OVER" et tout aurait été plus simple.

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

Discussions similaires

  1. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  2. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 16h02
  3. Aide pour une requete SQL
    Par hpghost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/01/2005, 15h01
  4. Aide pour une requete SQL
    Par hpghost dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 08/01/2005, 10h15
  5. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56

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