Créer une vue multi lignes
Bonjour à tous,
J'utilise Oracle 10g (oui c'est vieux) qui est exploité depuis Sage X3.
J'ai une table contenant une liste de bon de livraison et deux champs contenant le nombre de colis et le nombre de palette.
Code:
1 2 3 4 5 6 7 8 9
| +-----------------+-------------+--------+
| SDHNUM | PACNBR | XPAL |
+-----------------+-------------+--------+
| 2025020101 | 1 | 0 |
+-----------------+-------------+--------+
| 2025020103 | 5 | 1 |
+-----------------+-------------+--------+
| 2025010150 | 3 | 2 |
+-----------------+-------------+--------+ |
Depuis cette liste de données je dois générer autant d'étiquettes que d'unité de manutention (PACNBR + XPAL). La génération se fera depuis Crystal Report mais le hic est que pour un bon de livraison je n'ai qu'un enregistrement donc Crystal affichera une seule étiquette. Pour contourner ça j'ai créer une vue qui va me générer autant de ligne que la somme de PACNBR et XPAL. Par exemple pour le bon de livraison 2025020103 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| +-----------------+-------------+
| SDHNUM | QTYUM |
+-----------------+-------------+
| 2025020103 | 1 |
+-----------------+-------------+
| 2025020103 | 2 |
+-----------------+-------------+
| 2025020103 | 3 |
+-----------------+-------------+
| 2025020103 | 4 |
+-----------------+-------------+
| 2025020103 | 5 |
+-----------------+-------------+
| 2025020103 | 6 |
+-----------------+-------------+ |
Pour le moment ma requête ressemble à ça (j'ai pas encore intégré la somme PACNBR, XPAL) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| SELECT
s.SDHNUM_0,
t.QTYUM
FROM
SDELIVERY s
JOIN
(SELECT ROWNUM AS QTYUM
FROM dual
CONNECT BY LEVEL <= (SELECT PACNBR_0
FROM SDELIVERY
WHERE SDHNUM_0 = SDHNUM_0)
) t
ON t.QTYUM <= s.PACNBR_0
WHERE
s.SDHNUM_0 = SDHNUM_0
ORDER BY
s.SDHNUM_0, t.QTYUM |
En requête "pure" que je lance depuis dbeaver j'ai le résultat souhaité mais quand j'utilise cette requête pour créer ma vue et que je fais un simple SELECT * FROM MAVUE j'ai l'erreur ORA-01427.
C'est la première fois que je me frotte aux vues, est-ce que vous auriez des pistes ?
Merci d'avance.