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

Langage SQL Discussion :

Pivot dynamique en SQL


Sujet :

Langage SQL

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2020
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2020
    Messages : 30
    Par défaut Pivot dynamique en SQL
    Bonjour à tous,

    Je souhaite pivoter des données qui se présentent en ligne vers des colonnes sur du SQL Server.

    Voici mes données:
    Nom : Capture.JPG
Affichages : 147
Taille : 21,1 Ko

    Que je souhaite transformer en ceci:
    Nom : A.JPG
Affichages : 142
Taille : 30,3 Ko

    Rien à faire je me casse la tête avec le PIVOT mais je n'y parviens pas. Le nombre d'IMMEUBLE par ID_AVIS peut varier de 1 à 25 lignes.

    Voici la structure de la table avec le jeu de données:
    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
    create table temp
    (
        ID_AVIS varchar(100),
        IMMEUBLE varchar(100),
        COTISATION_TYPE varchar(100),
        COTISATION_MONTANT decimal(10,2)
    )
     
    insert into temp values ('1234', 'AB', 'GEMAPI',10.00)
    insert into temp values ('1234', 'AB', 'TAXE',50.00)
    insert into temp values ('1234', 'CD', 'GEMAPI',23.00)
    insert into temp values ('1234', 'CD', 'TAXE',32.00)
    insert into temp values ('1234', 'EF', 'GEMAPI',58.00)
    insert into temp values ('1234', 'EF', 'TAXE',72.00)
    insert into temp values ('4567', 'GH', 'GEMAPI',12.00)
    insert into temp values ('4567', 'GH', 'TAXE',22.00)
    insert into temp values ('4567', 'IJ', 'GEMAPI',38.00)
    insert into temp values ('4567', 'IJ', 'TAXE',64.00)
    Merci pour votre aide !!!

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Vous confondez bases de données et tableur avec tableau croisé. Si l'opérateur PIVOT existe bien dans certains SGBDR comme Microsoft SQL Server, ce n'est possible que pour des valeurs statiques étant entendu que ces valeurs doivent devenir des identifiants SQL (nom de colonne). Or comme dans n'importe quel langage le nom d'une variable ne peut pas être modifié à la volée... (une variable possède un nom statique....) D'où la nécessité d'utiliser des outils graphiques pour faire ce genre de choses.
    Par exemple dans Microsoft SQL Server, le module SSRS (SQL Server Reporting Services) permet aux utilisateurs de faire des tableaux croisés dynamiques à la volée....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Par ailleurs, un type integer serait nettement préférable pour la colonne identifiante ainsi qu'un char fixe court pour la typologie (plutôt que du varchar(100) pour ces deux attributs)

Discussions similaires

  1. [MSSQL 2000] Pivot dynamique
    Par Dark Matter dans le forum Langage SQL
    Réponses: 10
    Dernier message: 19/02/2008, 10h30
  2. [SQL] Menu deroulant PHP dynamique requete SQL
    Par pit2121 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/12/2007, 16h16
  3. Requêtes pivots sous MS-SQL Server
    Par Thony_7 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/05/2007, 16h45
  4. tri "dynamique" en SQL
    Par yrogerg_d dans le forum Oracle
    Réponses: 4
    Dernier message: 07/06/2006, 16h22
  5. [MSSQL 2000] Pivot dynamique
    Par Dark Matter dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/02/2006, 16h59

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