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

Excel Discussion :

Requêtes imbriquées sous MS Query


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    9
    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 : 9
    Points : 5
    Points
    5
    Par défaut Requêtes imbriquées sous MS Query
    Bonjour à tous,

    Je rencontre actuellement un problème que je n'arrive pas à résoudre du fait de mes faibles connaissances en SQL.

    J'ai crée, sous Access, une requête issue de 4 sous-requêtes, elles même issues de plusieurs requêtes...
    Concrètement :
    Les données sont dans une table 'Base'
    Une requête S3 est liée à cette 'Base'
    Une requête S2 est liée à S3 et 'Base'
    Une requête S1b est liée à S2 et 'Base'
    Une requête S1 est liée à S1 et 'Base'

    Une requête Synth (résultat final) est liée à S3, S2, S1b et S1

    Synth:Nom : Synth.PNG
Affichages : 691
Taille : 13,2 Ko

    S3:Nom : S3.PNG
Affichages : 589
Taille : 11,1 Ko

    S2:Nom : S2.PNG
Affichages : 551
Taille : 14,4 Ko

    S1:Nom : S1.PNG
Affichages : 541
Taille : 7,9 Ko S1b:Nom : S1b.PNG
Affichages : 565
Taille : 5,4 Ko

    Voilà la requête Synth (Pas remis en forme, j'ai peur de tout casser avec un retour à la ligne mal placé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT S3.A_S3, S3.L_S3, S2.A_S2, S2.L_S2, S1.A_S1, S1.L_S1
    FROM (((SELECT DISTINCT S1b.A_S2, S1b.L_S2, Base.Article AS A_S1, Base.Lot AS L_S1 FROM (SELECT DISTINCT Base.Article AS A_S2, Base.Lot AS L_S2, Base.Ordre AS O_S2 FROM (SELECT DISTINCT S3.A_S3, S3.L_S3, Base.Article AS A_S2, Base.Lot AS L_S2, Base.Ordre AS O_S2 FROM (SELECT DISTINCT Base.Ordre AS O_S3, Base.Article AS A_S3, Base.Lot AS L_S3 FROM Base WHERE (((Base.Article)=[S3]) AND ((Base.Mvt)=101)))  AS S3 INNER JOIN Base ON S3.O_S3 = Base.Ordre WHERE (((Base.Article)=[S2]) AND ((Base.Mvt)=261)))  AS S2 INNER JOIN Base ON (S2.A_S2 = Base.Article) AND (S2.L_S2 = Base.Lot) WHERE (((Base.Mvt)=101)))  AS S1b INNER JOIN Base ON S1b.O_S2 = Base.Ordre WHERE (((Base.Article)=[S1]) AND ((Base.Mvt)=261)))  AS S1 INNER JOIN (SELECT DISTINCT Base.Article AS A_S2, Base.Lot AS L_S2, Base.Ordre AS O_S2 FROM (SELECT DISTINCT S3.A_S3, S3.L_S3, Base.Article AS A_S2, Base.Lot AS L_S2, Base.Ordre AS O_S2 FROM (SELECT DISTINCT Base.Ordre AS O_S3, Base.Article AS A_S3, Base.Lot AS L_S3 FROM Base WHERE (((Base.Article)=[S3]) AND ((Base.Mvt)=101)))  AS S3 INNER JOIN Base ON S3.O_S3 = Base.Ordre WHERE (((Base.Article)=[S2]) AND ((Base.Mvt)=261)))  AS S2 INNER JOIN Base ON (S2.L_S2 = Base.Lot) AND (S2.A_S2 = Base.Article) WHERE (((Base.Mvt)=101)))  AS S1b ON (S1.L_S2 = S1b.L_S2) AND (S1.A_S2 = S1b.A_S2)) INNER JOIN (SELECT DISTINCT S3.A_S3, S3.L_S3, Base.Article AS A_S2, Base.Lot AS L_S2, Base.Ordre AS O_S2 FROM (SELECT DISTINCT Base.Ordre AS O_S3, Base.Article AS A_S3, Base.Lot AS L_S3 FROM Base WHERE (((Base.Article)=[S3]) AND ((Base.Mvt)=101)))  AS S3 INNER JOIN Base ON S3.O_S3 = Base.Ordre WHERE (((Base.Article)=[S2]) AND ((Base.Mvt)=261)))  AS S2 ON (S1b.L_S2 = S2.L_S2) AND (S1b.A_S2 = S2.A_S2)) INNER JOIN (SELECT DISTINCT Base.Ordre AS O_S3, Base.Article AS A_S3, Base.Lot AS L_S3 FROM Base WHERE (((Base.Article)=[S3]) AND ((Base.Mvt)=101)))  AS S3 ON (S2.L_S3 = S3.L_S3) AND (S2.A_S3 = S3.A_S3);
    (Je précise que je suis arrivé à un tel résultat en réalisant les requêtes à part, puis en les copiant dans l'interface SQL d'Access)

    En conservant le même fonctionnement, j'arrive (via plusieurs feuilles permettant d'enregistrer les requêtes S3, S2, S1b et S1) à obtenir le même résultat que ma requête Synth. Ma question est donc : Est-il possible, sur MS Query (Excel), d'imbriquer plusieurs requêtes afin d'obtenir la requête 'Synth' ?

    J'espère avoir suffisamment détaillé, et surtout bien expliqué, mon problème
    D'avance merci beaucoup !


    Cédric

    PS : J'ai crée ce post sous "Excel" puisque l'interface utilisée est MS Query, via Excel

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    A priori, oui.

    Cela dit, pourquoi ne récupères-tu pas ta requête finale dans MSQuery, puisque tu l'as créée sous Access?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2014
    Messages
    9
    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 : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    A priori, oui.

    Cela dit, pourquoi ne récupères-tu pas ta requête finale dans MSQuery, puisque tu l'as créée sous Access?
    Bonjour Pierre,

    Oui c'est une possibilité. Ce que j'ai oublié de préciser dans mon premier message c'est que la 'Base' est en fait une source Excel. Je me suis servi d'Access uniquement pour construire la requête (plus ergonomique que MSQuery), sans savoir que les langages différaient légèrement. Du coup, ça ferait Excel ('Base') -> Access (Requêtes) -> Excel (Résultat final)

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    MSQuery peut "attaquer" des tables Excel. Attention toutefois que cela fonctionne correctement uniquement avec des classeurs fermés (de mon expérience).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Requêtes imbriquées sous access
    Par medchok dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/04/2014, 19h41
  2. Problème requêtes imbriquées sous HQL
    Par shessuky dans le forum Oracle
    Réponses: 2
    Dernier message: 18/01/2013, 14h54
  3. Comment créer une requête imbriquée sous BO ?
    Par le_om dans le forum Débuter
    Réponses: 8
    Dernier message: 16/03/2012, 13h03
  4. Requête imbriquée sous MySQL
    Par hakim_vb dans le forum Requêtes
    Réponses: 5
    Dernier message: 05/07/2010, 17h12
  5. requêtes imbriquées sous Access
    Par Smix007 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/06/2007, 14h37

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