0% found this document useful (0 votes)
6 views3 pages

Elyes MP

The document contains a SQL query that is aggregating inventory data from multiple tables to summarize quantities by item over time. It joins data from tables containing inventory transactions (MVTL), items (ART), and item families (T012). The query calculates sums of beginning quantities, receipts, issues, consumption, mortality, and ending quantities for each item while also retrieving the item description and family.

Uploaded by

haythem.bchir.10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views3 pages

Elyes MP

The document contains a SQL query that is aggregating inventory data from multiple tables to summarize quantities by item over time. It joins data from tables containing inventory transactions (MVTL), items (ART), and item families (T012). The query calculates sums of beginning quantities, receipts, issues, consumption, mortality, and ending quantities for each item while also retrieving the item description and family.

Uploaded by

haythem.bchir.10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

SELECT FAM_0001, REF, DES, SUM(QTE_DEP) AS QTE_DEP, SUM(QTE_ACHT) AS QTE_ACHT,

SUM(QTE_ENTER) AS QTE_ENTER, SUM(QTE_CONS) AS QTE_CONS, SUM(QTE_MORT) AS QTE_MORT,


SUM(STK) AS STK, LIB, SUM(STK_MP1) as STK_MP1,SUM(STK_MP9) as
STK_MP9,SUM(STK_MP11) as STK_MP11
FROM (

SELECT dbo.MVTL.DOS, dbo.ART.FAM_0001, dbo.MVTL.REF,


dbo.ART.DES, SUM(CASE WHEN MVTL.SENS = 1 THEN MVTL.REFQTE ELSE - MVTL.REFQTE END)
AS QTE_DEP, 0 AS QTE_ACHT, 0 AS QTE_ENTER, 0 AS QTE_CONS, 0 AS QTE_MORT, 0 AS
STK, dbo.T012.LIB, 0 as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.T012 INNER JOIN
dbo.ART ON dbo.T012.DOS = dbo.ART.DOS AND
dbo.T012.FAM = dbo.ART.FAM_0001 RIGHT OUTER JOIN
dbo.MVTL ON dbo.ART.DOS = dbo.MVTL.DOS AND
dbo.ART.REF = dbo.MVTL.REF
WHERE (dbo.MVTL.DEPO = '1' OR dbo.MVTL.DEPO = '9' OR
dbo.MVTL.DEPO = '11') AND (dbo.MVTL.BLDT <= @date_debut) AND (dbo.MVTL.PICOD = 3 OR
dbo.MVTL.PICOD = 4) AND (dbo.ART.STCOD = 2)
GROUP BY dbo.MVTL.DOS, dbo.ART.FAM_0001, dbo.MVTL.REF,
dbo.T012.LIB, dbo.ART.DES
HAVING (dbo.MVTL.DOS = '1')

UNION

SELECT ART_5.DOS, ART_5.FAM_0001, ART_5.REF, ART_5.DES, 0 AS


QTE_DEP, SUM(CASE MVTL_5.SENS WHEN 1 THEN MVTL_5.REFQTE ELSE - (MVTL_5.REFQTE) END)
AS QTE_ACHAT, 0 AS QTE_ENTER, 0 AS QTE_CONS, 0 AS QTE_MORT, 0 AS STK, T012_5.LIB, 0
as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_5 INNER JOIN
dbo.MVTL AS MVTL_5 ON ART_5.DOS = MVTL_5.DOS
AND ART_5.REF = MVTL_5.REF INNER JOIN
dbo.T012 AS T012_5 ON ART_5.DOS = T012_5.DOS
AND ART_5.FAM_0001 = T012_5.FAM
WHERE (MVTL_5.DEPO = '1' OR MVTL_5.DEPO = '9' OR MVTL_5.DEPO =
'11') AND (MVTL_5.BLDT BETWEEN @date_debut AND @date_fin)
GROUP BY ART_5.DOS, MVTL_5.TICOD, MVTL_5.PICOD, ART_5.REF,
ART_5.DES, T012_5.LIB, ART_5.FAM_0001
HAVING (ART_5.DOS = '1') AND (MVTL_5.TICOD = 'F' OR MVTL_5.TICOD
= 'C') AND (MVTL_5.PICOD = 3 OR MVTL_5.PICOD = 4)

UNION

SELECT ART_4.DOS, ART_4.FAM_0001, ART_4.REF, ART_4.DES, 0 AS


QTE_DEP, 0 AS QTE_ACHAT, SUM(MVTL_4.REFQTE) AS QTE_ENTER, 0 AS QTE_CONS, 0 AS
QTE_MORT, 0 AS STK, T012_4.LIB, 0 as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_4 LEFT OUTER JOIN
dbo.T012 AS T012_4 ON ART_4.FAM_0001 =
T012_4.FAM AND ART_4.DOS = T012_4.DOS LEFT OUTER JOIN
dbo.MVTL AS MVTL_4 ON ART_4.REF = MVTL_4.REF
AND ART_4.DOS = MVTL_4.DOS
WHERE (MVTL_4.BLDT BETWEEN @date_debut AND @date_fin) AND
(MVTL_4.TICOD = 'I') AND (MVTL_4.PICOD = 3) AND (MVTL_4.SENS = 1)
GROUP BY ART_4.DOS, ART_4.FAM_0001, ART_4.REF, ART_4.DES,
T012_4.LIB, MVTL_4.DEPO
HAVING (ART_4.DOS = '1') AND (MVTL_4.DEPO = '1' OR MVTL_4.DEPO =
'9' OR MVTL_4.DEPO = '11')

UNION
SELECT ART_1.DOS, ART_1.FAM_0001, ART_1.REF, ART_1.DES, 0 AS
QTE_DEP, 0 AS QTE_ACHAT, 0 AS QTE_ENTER, SUM(dbo.MOUV.BLQTE) AS CONS, 0 AS
QTE_MORT, 0 AS STK, T012_1.LIB, 0 as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_1 LEFT OUTER JOIN
dbo.MOUV ON ART_1.DOS = dbo.MOUV.DOS AND
ART_1.REF = dbo.MOUV.REF LEFT OUTER JOIN
dbo.T012 AS T012_1 ON ART_1.DOS = T012_1.DOS
AND ART_1.FAM_0001 = T012_1.FAM
WHERE (ART_1.DOS = '1') AND (dbo.MOUV.DEPO = '1' OR
dbo.MOUV.DEPO = '9' OR dbo.MOUV.DEPO = '11') AND (dbo.MOUV.TICOD = 'I') AND
(dbo.MOUV.PICOD = 3) AND (dbo.MOUV.SENS = 2) AND (dbo.MOUV.BLDT BETWEEN @date_debut
AND @date_fin)
GROUP BY ART_1.DOS, ART_1.FAM_0001, ART_1.REF, ART_1.DES,
T012_1.LIB

UNION

SELECT ART_3.DOS, ART_3.FAM_0001, ART_3.REF, ART_3.DES, 0 AS


QTE_DEP, 0 AS QTE_ACHAT, 0 AS QTE_ENTER, 0 AS CONS, SUM(MVTL_3.STQTE) AS QTE_MORT,
0 AS STK, T012_3.LIB, 0 as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_3 INNER JOIN
dbo.T012 AS T012_3 ON ART_3.DOS = T012_3.DOS
AND ART_3.FAM_0001 = T012_3.FAM INNER JOIN
dbo.MVTL AS MVTL_3 ON ART_3.DOS = MVTL_3.DOS
AND ART_3.REF = MVTL_3.REF
WHERE (MVTL_3.DEPO = '1' OR MVTL_3.DEPO = '9' OR MVTL_3.DEPO =
'11') AND (ART_3.DOS = '1') AND (MVTL_3.STQTE > 0) AND (ART_3.REF NOT IN
(SELECT ART_5.REF
FROM dbo.ART AS ART_5 INNER JOIN
dbo.MVTL AS MVTL_5 ON
ART_5.DOS = MVTL_5.DOS AND ART_5.REF = MVTL_5.REF INNER JOIN
dbo.T012 AS T012_5 ON
ART_5.DOS = T012_5.DOS AND ART_5.FAM_0001 = T012_5.FAM
WHERE (MVTL_5.DEPO = '1' OR MVTL_5.DEPO
= '9' OR MVTL_5.DEPO = '11') AND (MVTL_5.BLDT BETWEEN @date_debut AND @date_fin)
GROUP BY ART_5.DOS, MVTL_5.TICOD,
MVTL_5.PICOD, ART_5.REF, ART_5.DES, T012_5.LIB, ART_5.FAM_0001
HAVING (ART_5.DOS = '1') AND
(MVTL_5.TICOD = 'F' OR MVTL_5.TICOD = 'C') AND (MVTL_5.PICOD = 3 OR MVTL_5.PICOD =
4)))
GROUP BY ART_3.DOS, ART_3.FAM_0001, ART_3.REF, ART_3.DES,
T012_3.LIB

UNION

SELECT ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES, 0 AS


QTE_DEP, 0 AS QTE_ACHAT, 0 AS QTE_ENTER, 0 AS CONS, 0 AS QTE_MORT,
SUM(MVTL_2.STQTE) AS STK, T012_2.LIB, 0 as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_2 INNER JOIN
dbo.MVTL AS MVTL_2 ON ART_2.REF = MVTL_2.REF
AND ART_2.DOS = MVTL_2.DOS INNER JOIN
dbo.T012 AS T012_2 ON ART_2.DOS = T012_2.DOS
AND ART_2.FAM_0001 = T012_2.FAM
WHERE (ART_2.DOS = '1') AND (MVTL_2.DEPO = '1' OR MVTL_2.DEPO =
'9' OR MVTL_2.DEPO = '11')
GROUP BY ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES,
MVTL_2.DEPO, T012_2.LIB

UNION
SELECT ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES, 0 AS QTE_DEP, 0 AS
QTE_ACHAT, 0 AS QTE_ENTER, 0 AS CONS, 0 AS QTE_MORT, 0 AS STK, T012_2.LIB,
SUM(MVTL_2.STQTE) as STK_MP1,0 as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_2 INNER JOIN
dbo.MVTL AS MVTL_2 ON ART_2.REF = MVTL_2.REF
AND ART_2.DOS = MVTL_2.DOS INNER JOIN
dbo.T012 AS T012_2 ON ART_2.DOS = T012_2.DOS
AND ART_2.FAM_0001 = T012_2.FAM
WHERE (ART_2.DOS = '1') AND (MVTL_2.DEPO = '1')
GROUP BY ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES,
MVTL_2.DEPO, T012_2.LIB

UNION

SELECT ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES, 0 AS QTE_DEP, 0 AS


QTE_ACHAT, 0 AS QTE_ENTER, 0 AS CONS, 0 AS QTE_MORT, 0 AS STK, T012_2.LIB, 0 as
STK_MP1,SUM(MVTL_2.STQTE) as STK_MP9,0 as STK_MP11
FROM dbo.ART AS ART_2 INNER JOIN
dbo.MVTL AS MVTL_2 ON ART_2.REF = MVTL_2.REF
AND ART_2.DOS = MVTL_2.DOS INNER JOIN
dbo.T012 AS T012_2 ON ART_2.DOS = T012_2.DOS
AND ART_2.FAM_0001 = T012_2.FAM
WHERE (ART_2.DOS = '1') AND (MVTL_2.DEPO = '9')
GROUP BY ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES,
MVTL_2.DEPO, T012_2.LIB
UNION

SELECT ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES, 0 AS QTE_DEP, 0 AS


QTE_ACHAT, 0 AS QTE_ENTER, 0 AS CONS, 0 AS QTE_MORT, 0 AS STK, T012_2.LIB, 0 as
STK_MP1,0 as STK_MP9,SUM(MVTL_2.STQTE) as STK_MP11
FROM dbo.ART AS ART_2 INNER JOIN
dbo.MVTL AS MVTL_2 ON ART_2.REF = MVTL_2.REF
AND ART_2.DOS = MVTL_2.DOS INNER JOIN
dbo.T012 AS T012_2 ON ART_2.DOS = T012_2.DOS
AND ART_2.FAM_0001 = T012_2.FAM
WHERE (ART_2.DOS = '1') AND (MVTL_2.DEPO = '11')
GROUP BY ART_2.DOS, ART_2.FAM_0001, ART_2.REF, ART_2.DES,
MVTL_2.DEPO, T012_2.LIB

) AS derivedtbl_1
GROUP BY FAM_0001, REF, DES, LIB

You might also like