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

Langage SQL Discussion :

jointure entre deux requete


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut jointure entre deux requete
    bonjour,

    je viens ici vous demander une aide ( j'ai deja cherche). voila j aimerai faire une seule requete de deux requetes qui font la meme selection la premiere fais une recherche sur l'exercice courant, la deusieme recheche l'exercice precedent
    c'est pas obligatoir qu il ramenent le meme nombre d'article

    je presente ici les requetes:
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA  from lignmvt a,articles b, Representant c
              where
              a.code_art=b.code_art and a.code_rep=c.code_rep and
              a.p_u<>0 and date_oper between '01/12/2002' And '31/12/2002'   and nat='VEN'
              group by Nom_Rep,design_1 order by Nom_Rep,Design_1

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA from lignmvt a,articles b, Representant c
              where
              a.code _art=b.code_art and a.code_rep=c.code_rep and
              a.p_u<>0 and date_oper between '01/12/2003' And '31/12/2003' and nat='VEN'
              group by Nom_Rep,design_1 order by Nom_Rep,Design_1
    "

    [Edit : Demco -> MERCI de lire et de respecter les regles du forum. Merci donc d'utiliser les balises de code !]




    merci à tous

  2. #2
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Tu connais les requêtes UNION ?
    et déja quel SGBD ?
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    je ne vois pas de différence entre les 2 requêtes

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut unionrequete
    Bonjour,
    oui connait Union mais pas comment l'utilise dans mon ca ( base de donne et en access)

    c'est vrai il n ya pas de difference entre les 2 suaf au niveau de la date de selection

    merci

  5. #5
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut Re: unionrequete
    Citation Envoyé par Youssef
    Bonjour,
    oui connait Union mais pas comment l'utilise dans mon ca ( base de donne et en access)

    c'est vrai il n ya pas de difference entre les 2 suaf au niveau de la date de selection

    merci
    Justement, comme les deux années se suivent, pourquoi ne pas faire une seule requete ?
    MashiMaro

    L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    salut,
    je crois que je me suis mal explique, les dates de selection sont differente

    Pour faire une seule requete c'est ce que je cherche (comment faire)


    merci

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Soit :

    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
    23
    select design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA 
    from   lignmvt a
           INNER JOIN articles b
                 ON a.code_art=b.code_art
           INNER JOIN Representant c
                 ON a.code_rep=c.code_rep
    where  a.p_u<>0 
      and  date_oper between '01/12/2002' And '31/12/2002'   
      and  nat='VEN'
    group  by Nom_Rep, design_1 
    order  by Nom_Rep,Design_1
    UNION
    select design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA 
    from   lignmvt a
           INNER JOIN articles b
                 ON a.code_art=b.code_art
           INNER JOIN Representant c
                 ON a.code_rep=c.code_rep
    where  a.p_u<>0 
      and  date_oper between '01/12/2003' And '31/12/2003'   
      and  nat='VEN'
    group  by Nom_Rep, design_1 
    order  by Nom_Rep,Design_1

    Soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA 
    from   lignmvt a
           INNER JOIN articles b
                 ON a.code_art=b.code_art
           INNER JOIN Representant c
                 ON a.code_rep=c.code_rep
    where  a.p_u<>0 
      and  date_oper between '01/12/2002' And '31/12/2003'   
      and  nat='VEN'
    group  by Nom_Rep, design_1 
    order  by Nom_Rep,Design_1
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    salut
    je vais le tester et je vous repond

    merci

  9. #9
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    salut,

    j'ai teste votre code, la 2ème requete c'est pas ce que je cherche, la premier c'est ce que je veux mais j'ai un message qui me dit :

    "Syntaxe incorrecte vers le mot clé 'UNION'"

    comme je suis debutant je suis confus devant cette situation

    Merci

  10. #10
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Quand tu prends juste la deuxième requête et tu l'exécute toute seule, est ce que tu as un message d'erreur ?
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  11. #11
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par Youssef
    "Syntaxe incorrecte vers le mot clé 'UNION'"
    Comment tu sais que c'est vers le mot clé "UNION" !!! tu l'exécute bien sous Access !!!!
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    salut,
    lorsque j'ai execute la deusieme requete il n ya pas de message mais son resultat c'est se que je souhaite .
    j'utilise tojour l'analyseur de requete pour tester mes requete


    Merci

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    Salut,

    je pense que je suis d'abuse de votre patience mais que faire je suis bloque
    pour etre plus precis voila le resultat que je affiche par l'union des 2 requetes

    la qte et le CA sont de l'exercice actuel , qte-1 et CA-1 sont celle de l'exerice precedent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Design_1        nom_Rep         Qte         CA             Qte-1     CA-1
     
    article1             Pierre              100       2580            50          1300
    article2             Pierre              0                0            20            250
    Article3             Andre             1500     25410              0               0

    Merci


    [/code]

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    le order by avant un UNION n'est pas possible

    le order by est fait en fin de fetch et donc s'applique à tout ce qui précéde

  15. #15
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    salut megadub

    merci de ta reponse, mais comment resoudre le probleme

    merci

  16. #16
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    tu supprimes le 1° order by, t'auras plus l'erreur mais pour le reste je ne sais pas

    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 design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA 
    from   lignmvt a 
           INNER JOIN articles b 
                 ON a.code_art=b.code_art 
           INNER JOIN Representant c 
                 ON a.code_rep=c.code_rep 
    where  a.p_u<>0 
      and  date_oper between '01/12/2002' And '31/12/2002'    
      and  nat='VEN' 
    group  by Nom_Rep, design_1 
    UNION 
    select design_1, Nom_Rep, sum(quantite) as qte, sum(quantite * a.p_u) as CA 
    from   lignmvt a 
           INNER JOIN articles b 
                 ON a.code_art=b.code_art 
           INNER JOIN Representant c 
                 ON a.code_rep=c.code_rep 
    where  a.p_u<>0 
      and  date_oper between '01/12/2003' And '31/12/2003'    
      and  nat='VEN' 
    group  by Nom_Rep, design_1 
    order  by Nom_Rep,Design_1

  17. #17
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par megadub
    le order by avant un UNION n'est pas possible

    le order by est fait en fin de fetch et donc s'applique à tout ce qui précéde
    je ne suis pas d'accord !!!!!!!!!!
    L'union ne fait que ramener "L'UNION" de deux requêtes tel quel.
    j'utilise déja des requêtes UNION avec des Order By !!

    Citation Envoyé par SQLPro
    Pour faire une union, il suffit de disposer de deux ensembles de données compatibles et d'utiliser le mot clef UNION. La syntaxe est alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ... 
    UNION 
    SELECT ...

    Bien entendu il est indispensable que les deux ordres SELECT :

    produisent un même nombre de colonnes;
    que les types de données de chaque paires ordonnées de colonnes soient de même type (ou d'un type équivalent).
    je te conseille ce site pour savoir un peu plus sur SQL youssef:
    http://sqlpro.developpez.com/
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  18. #18
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Citation Envoyé par Morsi
    Citation Envoyé par megadub
    le order by avant un UNION n'est pas possible

    le order by est fait en fin de fetch et donc s'applique à tout ce qui précéde
    je ne suis pas d'accord !!!!!!!!!!
    L'union ne fait que ramener "L'UNION" de deux requêtes tel quel.
    j'utilise déja des requêtes UNION avec des Order By !!
    ce que megadub dit c'est que le order by doit se trouver sur la dernière requete et qu'il s'appliquera bien sur l'ensemble.

  19. #19
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    d'accord, j'avais mal compris
    Par contre le GROUP BY est possible dans les deux requêtes !!!
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  20. #20
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Citation Envoyé par Morsi
    Par contre le GROUP BY est possible dans les deux requêtes !!!
    Oui il vaut mieux même :-)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Jointure entre deux résultats de 2 requetes
    Par fullmetalalchemiste dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/05/2012, 19h08
  2. Jointure entre deux requetes
    Par Myogtha dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/11/2007, 19h50
  3. jointure entre deux requete(sans doublant)
    Par nassu dans le forum Access
    Réponses: 1
    Dernier message: 10/04/2006, 11h26
  4. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  5. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50

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