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

Access Discussion :

Requête : Transformer lignes en colonnes


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Requête : Transformer lignes en colonnes
    Bonjour,

    Voici ma table :

    IdCode Nom Prenom Sport Val Date
    1 Martin Jean Course 100 m 01/05/2006
    1 Martin Jean Hauteur 2 m 02/05/2006
    1 Martin Jean Longueur 4 m 05/05/2006
    2 Dupond Marie Hauteur 1.5 m 02/05/2006
    2 Dupond Marie Longueur 3 m 03/05/2006
    3 Durand Pierre Course 150 m 05/05/2006

    Je voudrais que la requête me donne le résultat suivant : (dans la table il ne peut y avoir que course, hauteur et longueur)

    IdCode Nom Prenom Date Hauteur ValCourse ValHaut ValLong
    1 Martin Jean 02/05/2006 100 m 2 m 4 m
    2 Dupond Marie 02/05/2006 1.5 m 3 m
    3 Durand Pierre 150 m

    Merci pour votre aide

    (Suite de 1er enregistrement trouvé mais 2 pbs différents)

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    A partir de ta première requête,crée une requête analyse croisée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TRANSFORM First(première requête.PremierDeVal) AS [La valeur]
    SELECT première requête.PremierDeId, 
    première requête.Nom, première 
    requête.Prénom, First(première requête.PremierDeDate) AS PremierDePremierDeDate
    FROM première requête
    GROUP première requête.PremierDeId, première requête.Nom, première requête.Prénom
    ORDER BY première requête.PremierDeId
    PIVOT première requête.Sport;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J'ai un souci avec la requête précédente ce n'est pas la plus petite date qui est prise en compte

  4. #4
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Le tri ne se fait pas par date, ce n'est pas toujours la plus petite date qui est prise en compte pour un Id.
    Si je mets min() au lieu de first pour la date c'est OK mais je n'ai pas la Valeur correspondante à la date.
    Tiens donc?

    Si tu as trié ton champ Id en mode croissant ainsi que tes dates je ne vois pas ou est le problème.

    Pour être sûr de mon coup j'ai recopié toutes tes données et losrque je lance la requête ,le résultat attendu est là

    P.S:Il me semble que tu devrais laisser tes champs ID,Val et Date avec FIRST

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Le problème vient du fait que Table est une "requête".
    J'ai créé une Table avec les résultats de la requête cela fonctionne, par contre si Table est une requête cela ne fonctionne pas . Pourquoi?

  6. #6
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Réitères les mêmes tris avec ta requête.

    A demain !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J'ai le même tri. En affichage de la première requête "Table" les enregistrements sont triés correctement.

    J'ai créé une table en copiant les enregistrements issus de la requête ==> avec la table cela fonctionne
    J'ai créé une requête à partir de cette table qui crée exactement les mêmes enregistrements ==> A partir de cette requête cela fonctionne.
    Je ne comprends pas pourquoi à partir de ma première requête ça ne fonctionne pas.

    Merci.

Discussions similaires

  1. Transformer lignes en Colonnes
    Par AliSalafi dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/01/2013, 12h32
  2. [AC-2010] requête avec lignes et colonnes
    Par létudiant_access dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/01/2012, 12h49
  3. [MySQL] transformer ligne en colonne dans tableau après regroupement
    Par yadou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/07/2007, 15h27
  4. Transformer ligne en colonne
    Par delphine_lep dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/10/2006, 14h15
  5. transformation lignes en colonne
    Par marti dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/06/2006, 17h13

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