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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 +-----------------+-------------+--------+ | SDHNUM | PACNBR | XPAL | +-----------------+-------------+--------+ | 2025020101 | 1 | 0 | +-----------------+-------------+--------+ | 2025020103 | 5 | 1 | +-----------------+-------------+--------+ | 2025010150 | 3 | 2 | +-----------------+-------------+--------+
Pour le moment ma requête ressemble à ça (j'ai pas encore intégré la somme PACNBR, XPAL) :
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 +-----------------+-------------+ | SDHNUM | QTYUM | +-----------------+-------------+ | 2025020103 | 1 | +-----------------+-------------+ | 2025020103 | 2 | +-----------------+-------------+ | 2025020103 | 3 | +-----------------+-------------+ | 2025020103 | 4 | +-----------------+-------------+ | 2025020103 | 5 | +-----------------+-------------+ | 2025020103 | 6 | +-----------------+-------------+
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 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.
Partager