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 :

Requête affichant les résultats de divers requetes


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut Requête affichant les résultats de divers requetes
    Bonjour !

    Habituellement je crée mes requetes sur une base de donnée ACCESS, cela me permet de créer une requete qui me sort un résultat, puis d'utiliser le nom de cette requète dans une nouvelle requète afin de sortir un autre résultat.

    Et me voila lancé dans l'aventure SQL ... j'ai regardé la FAQ et les Guides mais je ne comprends pas comment faire.

    Je désire afficher dans une seul requête un certains nombre d'article qui sont reservés par un lancement(saisis par l'utilisateur), je veux également afficher pour chaque article la quantité existant dans un lieu précis commençant par "AT" suivis du lancement qui a été saisis par l'utilisateur au début, et la somme des quantité dans tous les autre lieu commençant également par "AT".

    Avec Access je me crée une requête me sortant les articles lié au lancement saisis, une requête qui me donnait la quantité pour le lancement saisis et une autre requête qui me donnait la somme des quantité des autre lieux et je combinais les 3 en 1 seul qui m'affiche des informations tres complementaires

    Quel syntaxe utilisé dans SQL ? J'ai juste besoin de la syntaxe pour que je comprenne tous seul ...

    Merci pour le coup de pouce

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 128
    Points : 79
    Points
    79
    Par défaut
    SI je comprend bien tu as deja une requette de créer sous access !

    Le plus simple est d'ouvrir cette requette en mode creation puis en mode sql

    Cela te retournera la requette sql qui corespond a ta requette access

    Si tu as des problemes avec n'ésite pas a nous la retourné

    Cordialement

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    bonjour merci de ta réponse rapide

    le probleme c'est que sur acces mes requetes ont des noms si je copie colle il comprend pas la requete qui contient les noms des 3 autre requetes mais sans les instructions...

  4. #4
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Donne nous tes 3 requêtes nommées ainsi que la requête regroupant le tout et on verra comment on peut t'orienter.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 128
    Points : 79
    Points
    79
    Par défaut
    Dans l'ecran ou tu as la liste de tes requettes
    Click droit sur la requete que tu veut explorer

    Click droit ----> Mode Création

    Une fois dans le mode création de ta requete il y a un petit bouton pour l'ouvrir en mode sql

    Et la normalement tu obtient ta requette en sql

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    la 1ere requete qui selectionne les articles pour un lancement saisis (ici lct08376) : Article_LCT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT LCT.Article
    FROM LCT
    WHERE LCT.CLct='lct08376'
    la 2eme requete qui affiche la quantité dans l'emplacement AT-LCT08376 pour le 1er article (ici défault = 453083): Qté_At_LCT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT EMP.Quantite, EMP.Article
    FROM EMP
    WHERE EMP.CodeEmplacement='AT-LCT08376' AND EMP.Article='5000453083'
    la 3 ème requete qui sort la somme des quantités dans les autres emplacements: Qté_At_Autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT EMP.Article, Sum(EMP.Quantite) AS SommeDeQuantite, EMP.CodeEmplacement
    FROM EMP
    GROUP BY EMP.Article, EMP.CodeEmplacement
    HAVING EMP.CodeEmplacement Not Like 'AT-LCT08376' And EMP.CodeEmplacement Like 'AT*'
    La derniere requete regroupant les 3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Article_LCT.Article, Qté_At_LCT.Quantite AS Qté_AT_LCT, Qté_At_Autres.SommeDeQuantite AS Qté_AT_Autres
    FROM (Article_LCT LEFT JOIN Qté_At_Autres ON Article_LCT.Article = Qté_At_Autres.Article) LEFT JOIN Qté_At_LCT ON Qté_At_Autres.Article = Qté_At_LCT.Article;

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    En remplacant simplement par exemple :
    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
    19
    20
    21
    22
     
    SELECT article_lct.article,
           qté_at_lct.quantite           AS qté_at_lct,
           qté_at_autres.sommedequantite AS qté_at_autres
    FROM   (SELECT lct.article
            FROM   lct
            WHERE  lct.clct = 'lct08376') article_lct
           LEFT JOIN (SELECT emp.quantite,
                             emp.article
                      FROM   emp
                      WHERE  emp.codeemplacement = 'AT-LCT08376'
                             AND emp.article = '5000453083') qté_at_autres
             ON article_lct.article = qté_at_autres.article
           LEFT JOIN (SELECT   emp.article,
                               Sum(emp.quantite) AS sommedequantite,
                               emp.codeemplacement
                      FROM     emp
                      GROUP BY emp.article,
                               emp.codeemplacement
                      HAVING   emp.codeemplacement NOT LIKE 'AT-LCT08376'
                               AND emp.codeemplacement LIKE 'AT*') qté_at_lct
             ON qté_at_autres.article = qté_at_lct.article
    Par contre, dans ce cas tu devrais plutot faire les jointures entre tes tables, et appliquer tes conditions à la fin.

    Exemple pour les deux premières :
    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
    19
     
    SELECT article_lct.article,
           qté_at_lct.quantite           AS qté_at_lct,
           qté_at_autres.sommedequantite AS qté_at_autres
    FROM lct article_lct
           LEFT JOIN emp qté_at_autres
             ON article_lct.article = qté_at_autres.article
           LEFT JOIN (SELECT   emp.article,
                               Sum(emp.quantite) AS sommedequantite,
                               emp.codeemplacement
                      FROM     emp
                      GROUP BY emp.article,
                               emp.codeemplacement
                      HAVING   emp.codeemplacement NOT LIKE 'AT-LCT08376'
                               AND emp.codeemplacement LIKE 'AT*') qté_at_lct
             ON qté_at_autres.article = qté_at_lct.article 	
    WHERE  lct.clct = 'lct08376'	
    AND emp.codeemplacement = 'AT-LCT08376'
    AND emp.article = '5000453083'
    En passant, je comprends pas bien dans la dernière pourquoi tu utilises having au lieu de where.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    j'ai utilisé un Having car j'ai un GROUP BY dans ma requête et il me semble qu'avec un group By il faut remplacer le where par having ?!

    EDIT

    Merci !
    j'ai réussis avec la solution 1 que j'ai adapté car il y avais une inversion au niveau des Qte_lct et Qte_autre.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/06/2009, 14h57
  2. [MySQL] Afficher les résultats de requête sur pages 1,2,3
    Par karenv5 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/01/2008, 17h31
  3. Réponses: 6
    Dernier message: 18/09/2007, 17h10
  4. Afficher les résultats d'une requête ligne après ligne
    Par ThunderBolt_ dans le forum VBA Access
    Réponses: 9
    Dernier message: 02/08/2007, 13h28
  5. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20

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