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 :

Transposer à l'affichage le résultat d'une requête [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut Transposer à l'affichage le résultat d'une requête
    Bonjour,

    J'ai déjà lu de nombreuses choses à ce sujet mais je n'ai trouvé aucune solution qui fonctionne pour résoudre mon problème.

    Je dispose d'une table avec les volumes par client par semaine et d'une autre table avec la liste des clients.

    Je regroupe ensuite les clients en 3 groupes : typologie1, 2 et 3.

    Je souhaite récupérer le tonnage par semaine par groupe de clients. J'ai réalisé la requête et elle fonctionne (à noter que la semaine que je récupère est située dans un formulaire).

    à l'affichage dans la zone de liste d'un formulaire, j'obtiens :
    GROUPE TONNAGE
    typologie 1 - 50 (t)
    typologie 2 - 55 (t)
    typologie 3 - 52 (t)

    J'aimerais avoir :
    typologie 1 - typologie 2 - typologie 3 -
    50 55 52

    J'ai essayé avec une requête croisée dynamique mais le fait que la semaine soit un paramètre provoque une erreur.

    Comment pourrais-je faire?

    Merci d'avance,

    Ostrich95

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Si je comprends bien tu voudrais que ces données :
    Citation Envoyé par ostrich95
    typologie 1 - typologie 2 - typologie 3 -
    50 55 52
    Remonte dans un formulaire, mais dans un champ, plusieurs ou autres...

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    Bonjour zoom61,

    En fait j'ai réalisé la requête qui me donne l'affichage standard (typologies et tonnages en colonne) et j'aimerais juste l'afficher dans un formulaire en la transposant.

    Je crée une zone de liste qui va chercher en valeur source ma requête et j'aimerais savoir s'il existe une propriété qui permet de la transposer facilement.

    Ostrich95

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Si tu n'as que 3 valeurs possibles, pourquoi ne pas faire une colonne par valeur et ainsi avoir ta requête avec les champs correspondant

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    Je ne comprends pas très bien ce que tu veux dire.

    Je joins ce que j'ai actuellement sur mon formulaire (pour chaque typologie, j'ai calculé différents paramètres):

    Nom : formulaire.png
Affichages : 260
Taille : 3,8 Ko

    les typologies sont bien sûr Oise, Roissy et Paris

    J'aimerais un affichage en colonne avec : typologie1 en 1ere colonne, typologie2 en 1ere colonne, typologie3 en 1ere colonne.

    Je sais parfaitement que je pourrais les afficher en ligne, mais ça ne m'arrange pas du tout au vu de mon formulaire.

    Vois-tu ce que je veux dire?

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Peux-tu mettre ce que tu souhaites obtenir

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    J'aimerais juste avoir:

    Oise Paris Roissy
    54 57 59

    Oise Paris Roissy
    -2.17 -2.59 9.83

    Oise Paris Roissy
    0.04 0.06 0.07

    Oise Paris Roissy
    52 52.18 68.48

    Il faudrait seulement transposer mes requêtes (au lieu d'avoir les champs en en-tête de colonne, je les aurai en en-tête de ligne).

    Y a t-il une fonction SQL ou une propriété à modifier pour faire cela?

    Ostrich95

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Si tu n'as que ces 3 titres, une simple requête suffit :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT 
        sum(iif(GROUPE = "Oise", TONNAGE, 0)) AS Oise,
        sum(iif(GROUPE = "Paris", TONNAGE, 0)) AS Paris,
        sum(iif(GROUPE = "Roissy", TONNAGE, 0)) AS Roissy
    FROM REQUETE
    Tu pourrais même la faire avec la requête précédente.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    Super ça fonctionne!

    Pour aller plus loin, est-ce possible de traiter la requête de la même façon si les typologies "Oise", "Roissy", "Paris" changent?

    En fait ces typologies sont écrites dans une table Groupe, et j'aimerais pouvoir afficher en colonne même si les noms de groupe changent (par contre il y en aura toujours 3 seulement).

    Comment puis-je aller chercher les noms dans la table avec la requête que tu as écrit?

    Ostrich95

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Pour résoudre ton problème, il va falloir passer par du VBA:
    • une requête VBA qui va te permettre de lire les valeurs ;
    • le code qui va créer le code SQL de la requête ;
    • la commande qui va modifier la requête avec les nouvelles données.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    J'ai peut-être une idée mais qui ne fonctionne pas très bien:

    j'ai ajouté un champ "numéro" dans la table (qui s'appelle ici TABLETypologies) où sont listées les typologies. Ce numéro sera toujours 1,2 ou 3 mais le nom de la typologie peut changer. J'ai essayé cette requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT 
         (IIf(REQUETE.Typologie = 
               (SELECT TABLETypologies.typologie FROM TABLETypologies WHERE  TABLETypologies.numero = 1),REQUETE.TONNAGE,0)),
         (IIf(REQUETE.Typologie=
                (SELECT TABLETypologies.typologie FROM TABLETypologies WHERE  TABLETypologies.numero = 2),REQUETE.TONNAGE,0)),
         (IIf(REQUETE.Typologie=
                (SELECT TABLETypologies.typologie FROM TABLETypologies WHERE  TABLETypologies.numero = 3),REQUETE.TONNAGE,0))
    FROM REQUETE, TABLETypologies;
    Mais voilà ce que j'obtiens:

    Nom : requete.png
Affichages : 275
Taille : 5,2 Ko

    Au lieu de:

    Nom : requete2.png
Affichages : 305
Taille : 3,5 Ko

    Sais-tu pourquoi j'obtiens 9 lignes au lieu d'une?

    En te remerciant d'avance,

    Ostrich95

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Les 9 lignes proviennent du faite que tu as mis REQUETE, TABLETypologies et aucune relation donc il faut le produit des deux 3 x 3 = 9, je pense que tu peux enlever TABLETypologies.

    Pour ce qui est des libellés tu devras passer par du code.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    J'ai retiré TABLETypologies de FROM et j'obtiens:

    Nom : requete2.png
Affichages : 260
Taille : 4,0 Ko

    As-tu une idée de ce qu'il faut que je modifie encore pour n'avoir qu'une seule ligne?

    PS:Tant pis pour les en-têtes je mettrais des zones de texte au-dessus où j'irais chercher directement dans la table les typologies.

  14. #14
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Ta requête devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT
    sum(IIf(REQUETE.Typologie = (SELECT TABLETypologies.typologie FROM TABLETypologies WHERE  TABLETypologies.numero = 1),REQUETE.TONNAGE,0)),      
    sum(IIf(REQUETE.Typologie= (SELECT TABLETypologies.typologie FROM TABLETypologies WHERE  TABLETypologies.numero = 2),REQUETE.TONNAGE,0)),      
    sum(IIf(REQUETE.Typologie= (SELECT TABLETypologies.typologie FROM TABLETypologies WHERE  TABLETypologies.numero = 3),REQUETE.TONNAGE,0)) 
    FROM REQUETE;
    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  15. #15
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Février 2014
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    Parfait, j'avais retiré les sommes!

    Merci encore zoom61, je passe le sujet en résolu

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

Discussions similaires

  1. Affichage des résultats d'une requête dans listbox
    Par Deallyra dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/10/2007, 14h09
  2. Affichage du résultat d'une requête SQL
    Par kamikazbe dans le forum JDBC
    Réponses: 2
    Dernier message: 24/05/2007, 19h47
  3. [MySQL] Affichage des résultats d'une requête sur plusieurs pages
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 13h24
  4. [VBA Access]Pb affichage de résultat d'une requête
    Par BouGeTonQ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/06/2006, 18h49
  5. Affichage du résultat d'une requête paramétrée
    Par Julien Dufour dans le forum Access
    Réponses: 6
    Dernier message: 11/05/2006, 14h32

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