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 liée, tous les enregistrements


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut Requête liée, tous les enregistrements
    Bonjour,

    J’ai besoin de votre aide concernant un problème que je rencontre.

    J’ai 2 requêtes contenant les mêmes champs

    Requête 1 : Reel
    Requête 2 : Budget

    Les champs sont les suivants : Produit, Quantite, Prix

    Je souhaite avoir le résultat suivant :

    Produit, Quantite_reel, Prix_reel, Quantite_budget, Prix_Budget


    J’arrive à avoir cela en faisant une requête (requête 2) liant la requête 1 et la 2 sur le champs produit avec un lien à gauche.

    Du coup en faisant cela j’ai tous les enregistrements de ma requête 1 avec les correspondances de la requête 2.

    Cependant je voudrai avoir également tous les enregistrements de ma requête 2 qui n’ont pas de correspondance avec la requête 1. Et c’est justement là que je bloque.

    J’ai pensé faire une requête distincte entre requête 3 et requête 2 qui me permettrait d’identifier les enregistrements manquants. Puis de faire une requête union entre requête 3 et requête 4 mais n’y a-t’il pas un moyen plus propre de faire cela ?

    Merci d’avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,
    Et en passant la liaison dans l'autre sens?
    Cordialement

  3. #3
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    En faisant cela j'aurai tous les enregistrements présents dans la requête 2 ainsi que toutes leurs correspondances dans la requête 1. Mais il me manquera du coup les enregistrements de la requête 1 sans correspondance dans la requête 2 ...

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Dommage que le SQL d'Access n'a pas encore intégré un FULL OUTER JOIN.

    Avec un UNION on peut avoir le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT T_reel.Idproduit, T_reel.Prix_reel, T_reel.Qte_reel, T_Budget.Prix_Budget, T_Budget.Qte_Budget, T_Budget.idBudget
    FROM T_Budget LEFT OUTER JOIN T_reel ON T_Budget.idBudget = T_reel.Idproduit
    UNION
    SELECT T_reel.Idproduit, T_reel.Prix_reel, T_reel.Qte_reel, T_Budget.Prix_Budget, T_Budget.Qte_Budget, T_Budget.idBudget
    FROM T_reel LEFT OUTER JOIN  T_Budget  ON T_reel.Idproduit=T_Budget.idBudget;
    Par contre, quel est le contexte pour qu'on ait des dépenses ou débit réel sans BUDGET ?

    Cordialement.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Merci pour ta réponse

    En réalité j’ai un peu simplifié mon exemple.

    Si tu veux, nous avons établis un budget en début d’année avec des quantités et des prix par produit + formule.
    Cependant, il se trouve que certains produit + formule budgetisé n’ont pas encore été produit. Il se peut également que nous avons produit certains produit + formule qui n’étaient pas prévu dans le budget.

    Mon but et de faire un tableau comparant tout cela.

    Par conséquent j’ai dû adapté ton modèle puisqu’en réalité j’ai une jointure sur le produit ainsi qu’une autre sur la formule.

    Du coup j’ai modifié ton code mais j’ai le message d’erreur « Overflow », sans plus d’explications que cela…

  6. #6
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Je suis finalement venu à bout de mon problème avec une requête union.

    Ensuite j'ai refais une requête avec des group by et des sommes pour tout remettre en forme.

    Je pense qu'il y avait une solution plus "propre", mais l'essentiel est que j'ai le résultat souhaité.


    Merci pour votre aide en tout cas

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 10h33
  2. Réponses: 3
    Dernier message: 28/10/2005, 15h03
  3. état avec tous les enregistrements d'un formulaire
    Par Arkalys dans le forum Access
    Réponses: 9
    Dernier message: 30/09/2005, 12h45
  4. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 09h35
  5. faire somme de tous les enregistrements identiques
    Par Keraccess dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/07/2005, 12h03

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