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.
Partager