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 :

PIVOT ou Pas : mais récupérer la valeur de telle ou telle colonne [2008R2]


Sujet :

Développement SQL Server

  1. #1
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut PIVOT ou Pas : mais récupérer la valeur de telle ou telle colonne
    Bonjour,

    Je sais que le titre n'est pas très clair.

    Voici mon problème.

    J'ai une table avec les colonne suivante
    Id1 int
    Id2 int
    tDesignation nvarchar
    nValeur int
    tValeur nvarchar

    Voici un exemple du contenue
    Id1 Id2 tDesignation nValeur tValeur
    1 1 Qte 1
    1 1 Nom France
    1 2 Qte 1
    1 2 Nom France
    2 1 Qte 1
    2 1 Nom Italie
    2 2 Qte 1
    2 2 Nom France


    Je suis novice avec l'utilisation des pivots mais j'ai réussit à faire ceci

    Id1 Id2 Nom
    1 1 France
    1 2 France
    2 1 Italie
    2 2 France


    Mais je n'arrive pas à ajouter la colonne Qte
    Si ma valeur était dans la colonne tValeur et pas dans nValeur j'y arriverai mais malheureusement ce n'est pas le cas.

    Donc voici ma question
    Comment je peux faire pour avoir un pivot mais récupérer telle ou telle colonne suivant ma valeur de tDesignation

    J'espère que je suis plus clair.

    Merci d'avance.

    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 806
    Points
    30 806
    Par défaut
    La première idée qui vient à l'esprit, c'est une jointure entre deux requêtes PIVOT, la première sur tValeur, la seconde sur nValeur.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bah oui tout simplement.
    j'ai honte.

    Merci beaucoup pour le coup de main et la rapidité de réponse.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Il doit même être possible d'éviter la jointure supplémentaire, avec quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT 
        id1
        ,id2
        ,MAX(
             CASE WHEN tDesignation = 'Qte' THEN CAST(nValeur AS VARCHAR)  END
        ) AS Quantite
        ,MAX(
             CASE WHEN tDesignation = 'Nom' THEN tValeur END
        ) AS Nom
     
    FROM LaTable
    GROUP BY id1,id2

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

Discussions similaires

  1. [Débutant] Récupérer la valeur d'un combobox multi colonnes
    Par dvdavid dans le forum C#
    Réponses: 10
    Dernier message: 17/07/2014, 13h36
  2. Réponses: 7
    Dernier message: 10/11/2008, 10h01
  3. Trigger : Récupérer la valeur par défaut d'une colonne
    Par mcspr2002 dans le forum Administration
    Réponses: 5
    Dernier message: 12/01/2007, 13h53
  4. Réponses: 1
    Dernier message: 29/07/2006, 10h08
  5. [FB] récupérer les valeurs pas défaut
    Par Emmanuel Lecoester dans le forum SQL
    Réponses: 1
    Dernier message: 05/01/2005, 14h37

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