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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    décembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : décembre 2016
    Messages : 30
    Points : 19
    Points
    19

    Par défaut Transformer les colonnes en ligne sans utiliser la méthode pivot ou unpivot

    Bonjour à vous,
    je viens au près de vous parce que j'ai ce problème depuis et j'aimerais que vous m'aidiez à trouver une solution.
    En fait, j'ai une table sur Sql Server et ce que j'aimerais faire c'est de prendre une colonne et de la transformer en ligne et qu'une autre devienne ces valeurs,
    mais sans utiliser la méthode pivot ou unpivot

    merci de m'aider !!!

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 043
    Points : 25 947
    Points
    25 947

    Par défaut

    Pour quelle raison ne pas utiliser PIVOT qui fait bien son travail ?
    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 éprouvé

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    novembre 2014
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : novembre 2014
    Messages : 617
    Points : 1 131
    Points
    1 131
    Billets dans le blog
    2

    Par défaut

    c'est count(case when)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(CASE WHEN colonne='xxxx' THEN xxx END) AS xxxx,
    FROM your_table

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    décembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : décembre 2016
    Messages : 30
    Points : 19
    Points
    19

    Par défaut

    en fait Al1_24 je ne veux pas utiliser PIVOT parce qu'il m'oblige à utiliser une fonction d'agregation, ce que j'evite

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    décembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : décembre 2016
    Messages : 30
    Points : 19
    Points
    19

    Par défaut

    Citation Envoyé par abdallah_mehdoini Voir le message
    c'est count(case when)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(CASE WHEN colonne='xxxx' THEN xxx END) AS xxxx,
    FROM your_table

    merci abdallah, mais ça ne marche pas. Et il y'a une fonction count() ce qui ne donne pas ce que je veux exactement

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 043
    Points : 25 947
    Points
    25 947

    Par défaut

    Parler dans le vide sans exemple ne permet pas de comprendre ton besoin...
    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.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    décembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : décembre 2016
    Messages : 30
    Points : 19
    Points
    19

    Par défaut

    Citation Envoyé par al1_24 Voir le message
    Parler dans le vide sans exemple ne permet pas de comprendre ton besoin...
    OK voici une figure de ma table avec les données.
    La table s'appelle SPSF et j'aimerai que les valeurs qui se trouve sur la colonne capteur soit des colonnes et que en dessous de chaque colonnes qu'on ait les données de la colonne valeur lues
    Nom : Capture.PNG
Affichages : 24
Taille : 9,0 Ko

    dont on devrait avoir un truc de ce genre !!!

    1 2 3 4 5 6
    21 22 22 22 22 22


    merci d'avance

  8. #8
    Expert confirmé Avatar de 7gyY9w1ZY6ySRgPeaefZ
    Homme Profil pro
    dba
    Inscrit en
    juillet 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : juillet 2007
    Messages : 4 462
    Points : 4 552
    Points
    4 552

    Par défaut

    et la question subsidiaire : pourquoi on n'a pas droit à la fonction PIVOT ?

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : janvier 2010
    Messages : 5 124
    Points : 10 563
    Points
    10 563

    Par défaut

    bonjour,

    Citation Envoyé par romyney Voir le message
    en fait Al1_24 je ne veux pas utiliser PIVOT parce qu'il m'oblige à utiliser une fonction d'agregation, ce que j'evite
    oui, c'est logique puisque vous pouvez potentiellement avoir plusieurs lignes a transformer en une seule
    Et toutes les méthodes alternatives feront de même !

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : janvier 2010
    Messages : 5 124
    Points : 10 563
    Points
    10 563

    Par défaut

    Citation Envoyé par romyney Voir le message
    OK voici une figure de ma table avec les données.
    D'aprés cet exemple, vous semblez avoir une unicité sur le capteur (pour une journée/heure donnée ?).
    Mais quid de la valeur a prendre en compte si vous aviez eut par exemple deux ligne avec capteur = 1 ? c'est pour cette raison que PIVOT nécéssite une fonction d'agregation.

    Dans votre cas, vous pouvez prendre n'importe laquelle, puisque vous aurez a priori forcément une seule ligne dans le groupe. du coup, vous n'avez que l'embarras du choix : MIN, MAX,...

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2019, 11h02
  2. [XL-2016] Transformation de bd "colonne en ligne sans doublon"
    Par Invité dans le forum Excel
    Réponses: 6
    Dernier message: 07/02/2018, 13h55
  3. [2008R2] Transformer toutes les colonnes en lignes
    Par Espoirwakal dans le forum Développement
    Réponses: 13
    Dernier message: 09/01/2014, 23h33
  4. [9.1] Transformer les colonnes en lignes
    Par LaPanic dans le forum Requêtes
    Réponses: 7
    Dernier message: 10/12/2012, 11h27
  5. Réponses: 6
    Dernier message: 11/10/2009, 10h57

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