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

Requêtes et SQL. Discussion :

Mettre une table à plat


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut Mettre une table à plat
    Bonjour,

    Ma question a peut-être déjà été traité ailleurs surement d'ailleurs, mais avec google mettre à plat une table SQL je ne trouve pas de résultat convaincant.

    Donc désolé par avance pour la redite si la réponse se trouve déjà quelque part mais là je bloque...

    Je travaille sous access.

    J'ai une table qui a cette forme là : Id; CodeProduit; LibelleProduit; Ville

    La table à un nombre distinct de ville fixé à 5 (Paris;Toulouse;Lille;Lyon;Rennes)

    Je vais vous donner un exemple d'enregistrement j'ommet volontairement l'id qui est un auto-incrément.

    CodeProduit LibelleProduit Ville
    P1 Lib1 Paris
    P1 libelUN Toulouse
    P1 Label1 Rennes
    P2 LIB2 Lyon
    P2 libelle2 Rennes

    Je souhaiterais par requete SQL si c'est possible avoir un retour comme suit :

    Code LibParis LibToulouse LibLille LibLyon LibRennes
    P1 Lib1 libelUN Label1
    P2 LIB2 libelle2

    Et là malgré ma calvitie je m'arrache mes derniers cheveux...


    Merci d'avance pour votre aide. Si cela est possible...

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 085
    Points : 5 200
    Points
    5 200
    Par défaut
    Bonjour,

    C'est normal d'y laisser des cheveux car c'est "contre nature"

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct codeproduit, (select libelleproduit from matable t1 where t1.codeproduit=t.codeproduit and t1.ville='Paris') as libparis, ... (idem pour chaque ville)... from matable t order by 1
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 567
    Points : 56 572
    Points
    56 572
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    ça ressemble à une requête Analyse croisée :

    Nom : reqAC07121984.PNG
Affichages : 356
Taille : 8,4 Ko

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(LibelleProduit)
    SELECT CodeProduit
    FROM matable
    GROUP BY CodeProduit
    PIVOT ville;

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 261
    Points : 6 557
    Points
    6 557
    Par défaut
    Salut
    Je pense qu'il faille passer par 2 req, sinon on ne voit pas le résultat pour lille laquelle n'est associée à aucun produit.
    Table1 contient les saisies sur produits et Table2 la liste des 5 villes.
    Requête4_1
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(Table1.libelle) AS PremierDelibelle
    SELECT Table1.codeprod
    FROM Table2 LEFT JOIN Table1 ON Table2.id_ville = Table1.id_villefk
    GROUP BY Table1.codeprod
    PIVOT Table2.ville;
    Requête4_2
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Requête4_1.*
    FROM Requête4_1
    WHERE (((Requête4_1.codeprod)<>""));
    Images attachées Images attachées   
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 567
    Points : 56 572
    Points
    56 572
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Lille m'avait échappé...
    On peut aussi spécifier les villes dans le pivot :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(LibelleProduit)
    SELECT CodeProduit
    FROM matable
    GROUP BY CodeProduit
    PIVOT ville  in ("Paris", "Toulouse", "Rennes", "Lyon", "Lille");

Discussions similaires

  1. Mettre une table en iso-8859-1?
    Par Prosis dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 24/07/2007, 14h54
  2. Réponses: 15
    Dernier message: 21/05/2007, 12h24
  3. [DBA] Mettre une table en mémoire
    Par Fakhry dans le forum Oracle
    Réponses: 9
    Dernier message: 28/07/2006, 16h18
  4. mettre une table dans plusieurs tables
    Par mat75019 dans le forum Access
    Réponses: 5
    Dernier message: 16/06/2006, 12h46
  5. [Access 2003]Mettre une table dans un formulaire?
    Par steeves5 dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 14h30

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