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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| SELECT
A.id_produit,
A.id_fournisseur,
A.ty_document,
A.nu_document,
A.qt_cmde_ini ,
A.px_commande,
A.ty_commande,
(A.px_commande*A.qt_cmde_ini) AS Valorisation,
A.id_user
/* Calcul de la somme*/
FROM(
SELECT
k.id_produit,
k.id_fournisseur,
k.dt_document,
k.qt_cmde_ini,
k.ty_commande,
k.id_societe,
k.id_offre,
k.ty_document,
k.nu_document,
k.nucdli,
k.id_user,
k.dt_livraison,
k.dt_confirmation,
sum(k.px_commande) AS px_commande /* Calcul de la somme*/
FROM(
SELECT /* SOUS REQUETE 2. Extraction des données agrégées par CDA*/
z.id_produit,
z.id_fournisseur,
z.dt_document,
z.qt_cmde_ini,
z.ty_commande,
z.id_societe,
z.id_offre,
z.id_user,
z.dt_livraison,
z.dt_confirmation,
z.px_commande,
CASE z.cde_ter /*Dans le cas de cde ter*/
WHEN 0 THEN z.ty_document /* Si cde ter = 0 ( quand ty_document <> CDA alors on récupère ty_document*/
ELSE 'CDA' /* Sinon on récupère CDA*/
END AS ty_document, /*Tout ceci est dans ty_document*/
CASE z.cde_ter
WHEN 1 THEN NULL /* Si ty_document = CDA * alors on récupère rien */
ELSE z.nucdli /*Sinon on récupère z.nucdli*/
END AS nucdli, /*tout ceci est dans nucdli, z.px_commande, z.cde_ter*/
z.cde_ter,
CASE z.cde_ter
WHEN 1 THEN z.nucdli /* Si ty_document = CDA alors on écrit rien z.nucdli */
ELSE z.nu_document /* Sinon on récupère nu_document */
END AS nu_document /* Tout ceci est dans nu_document */
FROM (SELECT *,
/* SOUS REQUETE 3. Agrégation des données dans le cas où nucdli = nu_commande */
CASE
WHEN EXISTS (SELECT 1 /* SOUS REQUETE 4. Extraction des données où nucdli = nu_commande et ty_commande = CDA */
FROM tbl_ligneachat h
WHERE h.id_produit = q.id_produit
AND q.nucdli = h.nu_document
AND h.ty_document = 'CDA') /* FIN SOUS REQUETE 4 */
THEN 1
ELSE 0
END AS cde_ter
FROM tbl_ligneachat Q
)AS z /* FIN SOUS REQUETE 3 */
)AS k
GROUP BY
k.id_produit,
k.id_fournisseur,
k.dt_document,
k.qt_cmde_ini,
k.ty_commande,
k.id_societe,
k.id_offre,
k.ty_document,
k.nu_document,
k.nucdli,
k.id_user,
k.dt_livraison,
k.dt_confirmation
)AS A |
Partager