Afficher un message
Vieux 25/04/2008, 20h30   #3 (permalink)
s.cassiau
cacs
 
Date d'inscription: avril 2008
Messages: 19
Pouvoir de réputation: 0 s.cassiau est bien parti(e)
Par défaut

Essaye quelque chose dans le genre ci-dessous:

select tab1.code, tab1.n_m, tab1.four, tab1.c_m, tab1.u_c, tab1.pu, tab1.qte, tab2.qte
from
(SELECT matiere.code_m as code, nom_m as n_m, nom_four as four, cond_m as c_m, unite_conditionnement as u_c, pu_m as pu, qte_inventaire_mat as qte
FROM matiere
LEFT JOIN inventaire_mat ON matiere.code_m = inventaire_mat.code_m
INNER JOIN fournisseur ON matiere.id_four = fournisseur.id_four
INNER JOIN conditionnement ON conditionnement.id_conditionnement = matiere.id_conditionnement
WHERE id_matiere_type = '$id_matiere_type'
AND (
(mois_inventaire_mat ='02' AND annee_inventaire_mat ='2008')
OR (mois_inventaire_mat IS NULL AND annee_inventaire_mat IS NULL)
) ) tab1,
(SELECT matiere.code_m as code, nom_m as n_m, nom_four as four, cond_m as c_m, unite_conditionnement as u_c, pu_m as pu, qte_inventaire_mat as qte
FROM matiere
LEFT JOIN inventaire_mat ON matiere.code_m = inventaire_mat.code_m
INNER JOIN fournisseur ON matiere.id_four = fournisseur.id_four
INNER JOIN conditionnement ON conditionnement.id_conditionnement = matiere.id_conditionnement
WHERE id_matiere_type = '$id_matiere_type'
AND (
(mois_inventaire_mat ='01' AND annee_inventaire_mat ='2008')
OR (mois_inventaire_mat IS NULL AND annee_inventaire_mat IS NULL)
) ) tab2
where tab1.code=tab2.code

Cette manière de créer des requêtes fonctionne avec oracle, access 2007 ...
Ta requête est considérée comme une table et on la duplique

select champs
from (ta_requete_mois02_par_ex) nouveau_nom_de_table,
(ta_requete_mois03_par_ex) nouveau_nom_de_table1
where nouveau_nom_de_table.champs_cle= nouveau_nom_de_table1.champs_cle

J'ai supposé que dans ta requête le champ code représente la clé primaire de ta table
__________________
Stéphane
s.cassiau est déconnecté   Réponse avec citation