SELECT
A.生产部门,
A.去年累计入库数量,
-- B.本年入库生产部门,
B.本年累计入库数量,
-- C.上月入库生产部门,
C.上月累计入库数量,
-- D.本月入库生产部门,
D.本月累计入库数量,
-- E.昨天生产部门,
E.昨天总入库数,
F.昨天入库生产部门,
F.昨天入库物料编码,
F.昨天入库物料名称,
F.昨天入库规格型号,
F.昨天累计入库数量
FROM
(
SELECT
t6.FNAME AS '生产部门',
sum( t2.FREALQTY ) AS '去年累计入库数量'
FROM
T_PRD_INSTOCK t1
LEFT JOIN T_PRD_INSTOCKENTRY t2 ON t1.FID = t2.FID
LEFT JOIN T_BD_MATERIAL t3 ON t2.FMATERIALID = t3.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t4 ON t3.FMATERIALID = t4.FMATERIALID
LEFT JOIN T_BD_DEPARTMENT t5 ON t2.FWORKSHOPID = t5.FDEPTID
LEFT JOIN T_BD_DEPARTMENT_L t6 ON t5.FDEPTID = t6.FDEPTID
WHERE
DATEDIFF(year,t1.FDATE,GETDATE())=1 -- 去年--
GROUP BY
t6.FNAME,
t5.FNUMBER
) A
LEFT JOIN (
SELECT
t6.FNAME AS '本年入库生产部门',
sum( t2.FREALQTY ) AS '本年累计入库数量'
FROM
T_PRD_INSTOCK t1
LEFT JOIN T_PRD_INSTOCKENTRY t2 ON t1.FID = t2.FID
LEFT JOIN T_BD_MATERIAL t3 ON t2.FMATERIALID = t3.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t4 ON t3.FMATERIALID = t4.FMATERIALID
LEFT JOIN T_BD_DEPARTMENT t5 ON t2.FWORKSHOPID = t5.FDEPTID
LEFT JOIN T_BD_DEPARTMENT_L t6 ON t5.FDEPTID = t6.FDEPTID
WHERE
DATEDIFF(year,t1.FDATE,GETDATE())=0 -- 今年--
GROUP BY
t6.FNAME,
t5.FNUMBER
) B
ON A.生产部门 = B.本年入库生产部门
LEFT JOIN (
SELECT
t6.FNAME AS '上月入库生产部门',
SUM( t2.FREALQTY ) AS '上月累计入库数量'
FROM
T_PRD_INSTOCK t1
LEFT JOIN T_PRD_INSTOCKENTRY t2 ON t1.FID = t2.FID
LEFT JOIN T_BD_MATERIAL t3 ON t2.FMATERIALID = t3.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t4 ON t3.FMATERIALID = t4.FMATERIALID
LEFT JOIN T_BD_DEPARTMENT t5 ON t2.FWORKSHOPID = t5.FDEPTID
LEFT JOIN T_BD_DEPARTMENT_L t6 ON t5.FDEPTID = t6.FDEPTID
WHERE
DATEDIFF(month,t1.FDATE,GETDATE())=1 -- 上月
GROUP BY
t6.FNAME,
t5.FNUMBER
) C
ON B.本年入库生产部门 = C.上月入库生产部门
LEFT JOIN (
SELECT
t6.FNAME AS '本月入库生产部门',
sum( t2.FREALQTY ) AS '本月累计入库数量'
FROM
T_PRD_INSTOCK t1
LEFT JOIN T_PRD_INSTOCKENTRY t2 ON t1.FID = t2.FID
LEFT JOIN T_BD_MATERIAL t3 ON t2.FMATERIALID = t3.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t4 ON t3.FMATERIALID = t4.FMATERIALID
LEFT JOIN T_BD_DEPARTMENT t5 ON t2.FWORKSHOPID = t5.FDEPTID
LEFT JOIN T_BD_DEPARTMENT_L t6 ON t5.FDEPTID = t6.FDEPTID
WHERE
DATEDIFF(month,t1.FDATE,GETDATE())=0 -- 本月--
GROUP BY
t6.FNAME,
t5.FNUMBER
) D
ON C.上月入库生产部门 = D.本月入库生产部门
LEFT JOIN (
SELECT
t6.FNAME AS '昨天生产部门',
t5.FNUMBER AS '部门编码',
SUM( t2.FREALQTY ) AS '昨天总入库数'
FROM
T_PRD_INSTOCK t1
LEFT JOIN T_PRD_INSTOCKENTRY t2 ON t1.FID = t2.FID
LEFT JOIN T_BD_MATERIAL t3 ON t2.FMATERIALID = t3.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t4 ON t3.FMATERIALID = t4.FMATERIALID
LEFT JOIN T_BD_DEPARTMENT t5 ON t2.FWORKSHOPID = t5.FDEPTID
LEFT JOIN T_BD_DEPARTMENT_L t6 ON t5.FDEPTID = t6.FDEPTID
WHERE
DATEDIFF( DAY, t1.FDATE, GETDATE ( ) ) = 1 -- 昨天
GROUP BY
t6.FNAME,
t5.FNUMBER
) E
ON D.本月入库生产部门 = E.昨天生产部门
LEFT JOIN (
SELECT
t6.FNAME AS '昨天入库生产部门',
t3.FNUMBER AS '昨天入库物料编码',
t4.FNAME AS '昨天入库物料名称',
t4.FSPECIFICATION AS '昨天入库规格型号',
sum( t2.FREALQTY ) AS '昨天累计入库数量'
FROM
T_PRD_INSTOCK t1
LEFT JOIN T_PRD_INSTOCKENTRY t2 ON t1.FID = t2.FID
LEFT JOIN T_BD_MATERIAL t3 ON t2.FMATERIALID = t3.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t4 ON t3.FMATERIALID = t4.FMATERIALID
LEFT JOIN T_BD_DEPARTMENT t5 ON t2.FWORKSHOPID = t5.FDEPTID
LEFT JOIN T_BD_DEPARTMENT_L t6 ON t5.FDEPTID = t6.FDEPTID
WHERE
DATEDIFF(day,t1.FDATE,GETDATE())=1 -- 昨天
GROUP BY
t3.FNUMBER,
t4.FNAME,
t4.FSPECIFICATION,
t6.FNAME,
t5.FNUMBER
) F
ON E.昨天生产部门 = F.昨天入库生产部门
ORDER BY
部门编码
```![图片说明](https://img-ask.csdn.net/upload/202004/20/1587372426_24541.png)