begin process at 2012 05 26 17:59:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

Double requête à faire en UNE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Double requête à faire en UNE

vendredi 29 octobre 2010 à 17:05:15 | Double requête à faire en UNE

patricevernier

Bonjour et merci pour votre aide.

J'ai deux requêtes que j'ai construit et qui fonctionne. En gros j'ai des données

num_affaire, montant_lots,date_enreg_affaire,...

Ma 1ère requête me donne une liste des affaires avec somme des montants des lots pour les années de 2000 à 2011

Ma 2ème requête me donne une liste des affaires avec montant somme des montants des lots pour l'année 2010

Je veux obtenir sur une même feuille la liste de 2010 avec les montants correspondants par numéro d'affaire totaux (de 2000 à 2011).
J'explique une affaire A0021 débute en 2008: 3 lots sont créés pour 15000 puis en 2009 2 lots pour 5000 euros enfin en 2010 6 lots pour 50000

Ma 1ère requête affiche
Num_aff Nombre lots Montant aff
A0021 (3+2+6)=11 (15000+5000+50000)=70000

Ma 2ème requête
Num_aff Nombre lots Montant aff
A0021 6 50000

Je veux obtenir sur une ligne en 1 requête
Num_aff Nombre lots 2010 Montant aff 2010 Nombre lots tot (2000-2011) Montant aff tot (2000-2011)
A0021 6 50000 11 70000

J'ai essayé de mettre 1 après l'autre avec UNION au milieu mais cela ne marche pas.
Je ne sais pas faire. MERCI DE M'AIDER

SELECT A.num_affaire, COUNT(L.num_lot) AS Lots, COUNT(L.date_commande) AS Nbrecommandes, SUM(L.montant_commande) AS Montant FROM affaires A LEFT OUTER JOIN lots L ON A.num_affaire=L.num_affaire WHERE A.date_enreg >= '01/01/2000' AND A.date_enreg < '01/01/2011' GROUP BY A.num_affaire ORDER BY A.num_affaire UNION (SELECT A.num_affaire, COUNT(L.num_lot) AS Lots, COUNT(L.date_commande) AS Nbrecommandes, SUM(L.montant_commande) AS Montant FROM affaires A LEFT OUTER JOIN lots L ON A.num_affaire=L.num_affaire WHERE A.date_enreg >= '01/01/2009' AND A.date_enreg < '01/01/2011' GROUP BY A.num_affaire )

MERCI


samedi 13 novembre 2010 à 21:04:53 | Re : Double requête à faire en UNE

gorgonite

le parenthèsage des deux select peut-être ?

(select ... ) union (select ... )


sinon il y a toujours les procédures pour afficher quelque chose de plus logique dans une table du style
num_affaire lots_hist nb_command_hist montant_hist lots_current nb_command_current montant_current
samedi 20 novembre 2010 à 19:19:17 | Re : Double requête à faire en UNE

Robert33

Membre Club

Bonsoir

Quand tu dis

J'ai essayé de mettre 1 après l'autre avec UNION au milieu mais cela ne marche pas.


peux-tu être plus précis ?

Bob.
samedi 20 novembre 2010 à 19:32:23 | Re : Double requête à faire en UNE

Robert33

Membre Club

Re
je viens de faire un petit test,
-enleve le ORDER BY de la premiere requete, sur une union les clauses ORDER BY doivent se trouver apres l'union.

par ailleurs, tes requetes se superposant, le moteur va filtrer les retours pour eviter les doublons,
donc si tu veux obtenir des lignes dupliquées pour les années 2009-20010 (tu as mis 2011 dans ta 2eme clause where)
il faut que tu utilises UNION ALL, et là le moteur ne filtrera plus les retours.

Bob.


Cette discussion est classée dans : requête, num, affaire, montant, lots


Répondre à ce message

Sujets en rapport avec ce message

jointure de 2 requêtes SQL [ par patricevernier ] J'ai plusieurs tabs Affaires A avec numéro d'affaire, libellé, login, type, etc Lots L avec numéro d'affaire, libellé, montant commande, etc Problème avec Procédure stockée sous oracle 10g [ par ndaseraphin ] slt à tous, Je suis débutant sous oracle. Je veux crée une procédure stockée mettant une table à jour. voici mon problème: J'ai 2 tables: [b]PAIEMENT Problème avec un IIF dans une requête sous Access [ par Famas54 ] Bonjour, je tente de mettre en place des conditions spéciacles dans certains champs de mes requêtes avec des IIF mais j'ai toujours cette maudite erre Somme SQL [ par patricevernier ] Bonjour je suis nul en informatique et on me demande de faire des requêtes SQL à partir de tableau présent sur un programme de gestion d'affaire. En probleme pour sommer [ par cudenetf ] bonjour,lors d'une requete je voudrais recuperer des sommes mais j'ai un probleme (sinon je ne poserais pas la question sur le forum lol)j'ai une tabl Champ calculé pour un total dans une requête Access [ par Famas54 ] Bonjour, Je dispose d'une table sans clé primaire sur laquelle jai enregistré différentes factures. Je n'ai pas de clé primaire car pour un même numé besoin d'aide pour un requête [ par Yoshifumi ] Bonjour, Je vous expose mon problème, j'ai 3 tables comme décrites ci-dessous de manière simplifiée: Commandes(idCommande, idDeLaPièce, quantitéCom Requête liée au sein de la même table, comme faire? [ par jmey ] Bonjour,Je souhaite obtenir le résultat suivant (comparatif): <FONT face Faire un requête insert avec une condition [ par omgirl ] Bonjour à tous,Voilà je voudrais savoir comment faire une requête insert avec une condition.Je vais essayé de vous expliquer ça :  -j'ai une table equ Requete SQL multi schema [ par agau123 ] Bonjour,j'utilise PL/SQL et je voudrai lancer une requête sur plusieurs schéma oracle et récupérer les données dans la même sortie.Exemple : j'ai 3 ta


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales