TOP 10 sur qtés prises dans 2 tables différentes
Bonjour à tous,
aujourd'hui je me décide à poster une question sur un problème que j'ai toujours contourné par programmation ne sachant pas le résoudre via une requête plus élaborée.
J'ai besoin d'établir une sorte de FLOP 10 de mes fournisseurs les plus en retard dans leurs livraisons. A cet effet, je dois interroger 2 types de transactions avec mes fournisseurs: les achats purs, et la sous-traitance.
J'ai donc 2 tables différentes, toutes 2 ayant une clé étrangère vers un fournisseur.
Voici un début de requêtage, pour l'instant ça me fait un produit cartésien des 2 tables :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| select achats.frn_code AS fournisseur, achats.solde AS fsolde, st.frn_code AS soustraitant, st.solde AS stsolde
from
(select frn_code, sum(cfl_qte_cde - cfl_qte_recue) AS solde
from cfl
inner join cf on cfl_cf_id = cf_id
inner join frn on cf_fournisseur = frn_id
where cfl_fermee = 0 and cfl_qte_recue < cfl_qte_cde
AND cfl_delai_fournisseur < '20171108'
group by frn_code) AS achats,
(select frn_code, sum(os_qte_encours) AS solde
from os
inner join frn on os_fournisseur = frn_id
where os_termine = 0 AND os_qte_encours > 0
AND os_echeance < '20171108'
group by frn_code) AS st |
Est-ce que je dois faire séparément chaque requête, mettre dans un "buffer" temporaire, trier, et récupérer le top 10 ?
Si je peux le faire direct dans une seule et même requête ce serait top...
Merci d'avance pour tout conseil.
droliprane