Bonjour,

J'ai essayé depuis pas mal de temps de résoudre le problème de sélection des numéros de commandes ayant comme critère les articles commandés pas encore livrés, enfin, j'ai pu s'approcher de la solution mais ma solution affiche seulement les commandes qui n'ont plus de livraison par contre il y a des commandes qui ont des livraisons incomplètes.
La requête est la suivante:


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
SELECT DISTINCT t1.num_commande, t1.date_commande,t1.libelle_four
FROM 
(
    SELECT ca.num_commande, c.date_commande, f.libelle_four, ca.quantite AS qté_commandée
    FROM CDE_ART ca
    INNER JOIN COMMANDE c ON c.num_commande = ca.num_commande
        INNER JOIN FOURNISSEUR f ON f.reference_four = c.reference_four
) t1
 FULL OUTER JOIN
(
    SELECT l.num_commande,la.quantite_livree
    FROM LIV_ART la
    INNER JOIN LIVRAISON l ON l.code_livraison = la.code_livraison
        INNER JOIN FOURNISSEUR f ON f.reference_four = l.reference_four
) t2 ON t2.num_commande = t1.num_commande
GROUP BY t1.num_commande, t1.date_commande, t1.libelle_four, t1.qte_commandee
HAVING t1.qte_commandee - COALESCE(SUM(t2.quantite_livree), 0) > 0
order by t1.num_commande
le problème après des tests réside dans l'instruction HAVING car si je fais < 0 au lieu de > 0 il y aura affichage seulement des commandes manquées de la deuxième (> 0).

Merci pour vos propositions et vos remarques.