1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
SELECT
SDA.code_demande_achat AS code_demande, SDA.numero_demande,
date_mouvement, code_mouvement,
VSM.libelle,
num_liv,
GM.code_magasin, GM.libelle AS libelle_magasin,
magasin_id,
CR.code_centre, CR.designation AS designation_centre,
p.code_produit, p.PRODUIT_ID, p.DESIGNATION,
QTE_MV,
VSM.PRIX_ACHAT,
1 AS idu
FROM V_Stk_mouvement AS VSM
INNER JOIN gen_produit AS p ON VSM.CODE_PRODUIT = p.code_produit
INNER JOIN STK_LIVRAISON_interne AS SLI ON SLI.CODE_LIVRAISON = VSM.CODE_LIVRAISON_I
INNER JOIN stk_ligne_livraison_interne AS LLI ON SLI.code_livraison = LLI.code_livraison
INNER JOIN STK_LIVRAISON_DEMANDE_ACHAT AS LDA ON LLI.CODE_LIGNE_LIVRAISON = LDA.CODE_LIGNE_LIVRAISON
INNER JOIN stk_demande_achat AS SDA ON LDA.CODE_DEMANDE_ACHAT = SDA.CODE_DEMANDE_ACHAT
INNER JOIN gen_centre_responsabilite AS CR ON CR.code_centre = SLI.code_centre
INNER JOIN gen_magasin AS GM ON GM.code_magasin = VSM.CODE_MAGASIN
LEFT OUTER JOIN Gen_produit_H AS p1 ON p.CODE_PRODUIT = P1.ref
LEFT OUTER JOIN Gen_produit_H AS P2 ON P1.code_h LIKE P2.code_h + '.%'
AND upper(P2.type) LIKE 'FAMILLE'
AND P2.SOUS_FAMILLE = 0
AND NOT EXISTS (
SELECT CODE_H
FROM Gen_produit_H F
WHERE upper(F.type) = 'FAMILLE'
AND F.CODE_H LIKE P2.CODE_H + '.%' AND F.SOUS_FAMILLE = 0
)
LEFT OUTER JOIN Gen_produit_H AS P3 ON p1.code_h LIKE p3.code_h + '.%'
AND upper(p3.type) LIKE 'NATURE'
AND NOT EXISTS (
SELECT CODE_H
FROM Gen_produit_H N
WHERE upper(N.type) = 'NATURE'
AND N.CODE_H LIKE P3.CODE_H + '.%'
)
WHERE upper(P1.type) LIKE 'PRODUIT'
AND qte_mv > 0
AND VSM.type LIKE 'S'
GROUP BY
SDA.code_demande_achat ,date_mouvement, SDA.numero_demande ,
code_mouvement,VSM.libelle, num_liv,
GM.code_magasin,GM.libelle , magasin_id, CR.code_centre,
CR.designation , p.code_produit , p.PRODUIT_ID ,
p.DESIGNATION , QTE_MV , VSM.PRIX_ACHAT
HAVING count(*) = 1 |
Partager