Requete union

unseen Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


2 requetes :

- la 1 ère affiche (après différents regroupement et somme) ds un tableau les données d'un lot de produits, ses quantités entrées et le mois et l'année coe ceci :

A 17 janvier 2012
B 12 janvier 2012

requete sql correspondante

SELECT T_entreprise.nature AS NATURE, T_commande.designation AS DESIGNATION, Sum(T_commande.quantite) AS [QUANTITE LIVREE], Month([T_entreprise]![date_livraison]) AS MOIS, Year([T_entreprise]![date_livraison]) AS ANNEE
FROM T_entreprise INNER JOIN T_commande ON T_entreprise.id_entreprise=T_commande.id_entreprise
GROUP BY T_entreprise.nature, T_commande.designation, Month([T_entreprise]![date_livraison]), Year([T_entreprise]![date_livraison]);


- la 2 ième affiche ds un autre tableau les données d'un lot de produits plus ou moins identique à la 1 ère, ses quantités sorties et le mois coe ceci :

A 10 janvier
B 3 janvier
C 11 janvier
D 23 janvier

requete sql correspondante

SELECT T_direction.nature AS NATURE, T_besoin.designation AS DESIGNATION, Sum(T_besoin.q_servie) AS [QUANTITE SERVIE], Month([T_direction]![date_reception]) AS MOIS, Year([T_direction]![date_reception]) AS ANNEE
FROM T_direction INNER JOIN T_besoin ON T_direction.id_direction = T_besoin.id_direction
GROUP BY T_direction.nature, T_besoin.designation, Month([T_direction]![date_reception]), Year([T_direction]![date_reception]);

MON OBJECTIF

je desire à travers une dernière requete avoir à la fin un tableau

produit entrees sorties mois
A 17 10 jan
B 12 3 jan
C 0 11 jan
D 0 23 jan

je pense qu'il faut une requête union ou d'une requete jointure mais je sais pas comment m'y prendre ;surtout avec les valeurs nulles qui doivent rentrer en ligne de compte

AIDEZ MOI PLEASE

3 réponses

Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Bonjour,
Si tes lots de produits sont uniques dans les 2 jeux de résultats, tu peux faire facilement une requête ainsi :
SELECT * FROM (REQUETE1) req1 
INNER JOIN (REQUETE2) req2 ON req1.Lot = req2.Lot


Ou alors créer 2 tables temporaires où tu insères les résultats des 2 requêtes, et tu jointes (du verbe jointer oui oui) de la même manière.
0
unseen Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
oui les lots de produits sont uniques ds les deux requetes. seulement devrais je préciser que les memes produits ne se retrouvent pas forcément ds les deux requetes, l'une pouvant contenir plus de produits que l'autre.

exple ds la 1 ère on a les produits A. B. C avec leur qtité entrées 10;5,8 et ds la 2ième on aura parfois B. C. D. E. F avec leur qtite sorties 12,5,6,5,2

l'idée sera d'avoir à la fin un tableau qui va faire une soustraction entre les entrées et les sorties et mettra des quantités zero pour les qtité inexistantes ds l'une des requetes coe ceci

A,10,0,10
B,5,12,-7
C,8,5,3
D,0,6,-6
E,0,5,-5
F,0,2,-2

c'est une sorte de fusion des deux requetes mais horizontalement à la différence d'une requete union.


j'ai précedemment fais un INNER JOIN sur les produits ... cette requete ignore des produits qui st pas communs au resultats des deux requetes cad ds mon exple du haut les produits A,D,E,F

tu as mes deux requetes . aide moi à créer concretement la troisième que je voudrais.

si tu veux je t'envoie via email une copie de ma bd pr qu'on puisse en discuter et se comprendre...
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Pour avoir tous les résultats y compris les NULL, tu reprends la requête de Morgothal mais tu remplaces INNER JOIN par FULL OUTER JOIN

Xavier
0