Bonjour à tous.

J'ai hérité d'un écran forms pour ajouter une petite évolution. Il s'agit d'une liste de valeurs sur laquelle je dois forcer le résultat d'une requête.

J'ai une vue qui pointe sur plusieurs tables, dont celles des articles. Et une autre qui pointe sur la table des commandes (entêtes et lignes). Dans ma requête, je fais une jointure pour afficher les quantités attendues par article.

Pour chaque article, on peut avoir plusieurs variantes. Dans ma requête, je dois afficher la variante, avec les quantités en face. Seulement, pour éviter d'avoir plusieurs fois la même quantité, le client souhaite forcer l'affichage sur la 1ère variante (donc zéro sur les autres).

Je sais, ça sens le produit cartésien...
Mais j'ai récupéré le module comme ça et je ne veux pas le réécrire entièrement.


Résultat attendu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ARTICLE               VARIANTE   QUANTITE 
-------               --------   -------- 
ALGUES DECORATIVES          00         10 
ALGUES DECORATIVES          01          0 
ALGUES DECORATIVES          02          0 
SALICORNES FRAICHES         00         23 
SALICORNES FRAICHES         01          0 
SALICORNES FRAICHES         02          0 
SALICORNES FRAICHES         03          0

Résultat obtenu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ARTICLE               VARIANTE   QUANTITE 
-------               --------   -------- 
ALGUES DECORATIVES          00         10 
ALGUES DECORATIVES          01         10 
ALGUES DECORATIVES          02         10 
SALICORNES FRAICHES         00         23 
SALICORNES FRAICHES         01         23 
SALICORNES FRAICHES         02         23 
SALICORNES FRAICHES         03         23

Je pensais y arriver avec un DECODE, comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT   article, variante, 
         DECODE (variante, '00', (SUM (NVL (quantite, 0))), 0) 
    FROM v_articles, v_commandes 
WHERE... 
GROUP BY article, variante;

Mais ça ne fonctionne pas avec le SUM (j'ai zéro sur toutes les lignes). Il doit bien y avoir une solution...

Merci d'avance.