This commit is contained in:
PastSaid
2024-07-16 10:33:50 +08:00
parent e8a1f46c3d
commit fa480006a8
132 changed files with 20893 additions and 4519 deletions

View File

@@ -0,0 +1,172 @@
declare @sqlL varchar(max)
declare @billNo varchar(100),@materialNumber varchar(100)
declare @dbName varchar(100)
IF EXISTS (SELECT 1 WHERE OBJECT_ID('tempdb..#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') IS NOT NULL)
BEGIN
DROP TABLE #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
END
IF EXISTS (SELECT 1 WHERE OBJECT_ID('tempdb..#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>') IS NOT NULL)
BEGIN
DROP TABLE [dbo].[#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>]
END
CREATE TABLE #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(
[FBILLNO] [nvarchar] (255) NOT NULL,
[FID] [int] NOT NULL,
[FENTRYID] [int] NOT NULL,
[TopMaterialId] [int] NULL,
[FMATERIALID] [int] NULL,
[FFORMID] [varchar](36) NULL,
[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] [decimal](23, 10) NOT NULL,
[FSTATUS] [char](1) NULL,
[FCOSTDATE] [datetime] NULL,
[FQTY] [decimal](23, 10) NOT NULL,
[FPERIOD] [int] NULL
) ON [PRIMARY]
SET @sqlL = N'
INSERT INTO #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SELECT t0.FBILLNO,t0.FID,t0e.FENTRYID,t0e.FMATERIALID AS TopMaterialId,t0e.FMATERIALID
,t0.FFORMID AS FFORMID,t0e_a.FSTOCKINQUASELAUXQTY AS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0e_a.FSTATUS,t0e_a.FCOSTDATE,t0e_a.FSTOCKINQUASELAUXQTY AS FQTY
,CONVERT(INT, CONVERT(VARCHAR(6),ISNULL(t0e_a.FCOSTDATE,GETDATE()),112)) AS FPERIOD
FROM T_PRD_MO t0
INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e.FENTRYID = t0e_a.FENTRYID
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0e.FMATERIALID
WHERE 1 = 1
'
select @dbName = db_name()
if @dbName != 'AIS20231110222743'
BEGIN
SET @billNo = 'WO2403210039'
END
IF @billNo != '' OR @materialNumber = ''
BEGIN
SET @sqlL = @sqlL + N' AND t0.FBILLNO = ''' + @billNo + ''''
END
IF @materialNumber != ''
BEGIN
SET @sqlL = @sqlL + N' AND t1.FNUMBER = ''' + @materialNumber + ''''
END
EXEC(@sqlL)
;WITH #<23><><EFBFBD><EFBFBD> AS (
SELECT t0.FLOTID,ISNULL(t1.FID,0) 'LotMoId'
,ISNULL(t1e.FENTRYID,0) 'LotMoEntryId'
FROM T_BD_LOTMASTER t0
LEFT JOIN T_PRD_MO t1 on t0.FNUMBER = t1.FBILLNO
LEFT JOIN T_PRD_MOENTRY t1e on t1e.FID = t1.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
)
--, <>Ӳ<EFBFBD><D3B2><EFBFBD> AS (
-- SELECT t2.FMATERIALID
-- ,t1.FPRODUCTDIMEID,t2.FLOT
-- ,SUM(t1.FAMOUNT) 'FAMOUNT'
-- ,MAX(CONVERT(int,CONVERT(varchar(6) ,t3.FBILLDATE,112))) AS 'FPERIOD'
-- FROM V_CB_COSTALLORESULTSEND t1
-- INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t1.FDIMEENTRYID = t2.FENTRYID
-- INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t1.FOUTINSTOCKID
-- OUTER APPLY (
-- SELECT t4.FNUMBER,t7.FPRODUCTNO
-- ,ISNULL(t7.FBILLID,0),ISNULL(t7.FBILLENTRYID,0)
-- FROM T_BD_LOTMASTER t4
-- LEFT JOIN T_CB_PROORDERDIME t7 on t7.FPRODUCTNO = t4.FNUMBER
-- WHERE t4.FLOTID = t0.FLOT
-- ) t4
-- GROUP BY t2.FMATERIALID,t1.FPRODUCTDIMEID,t2.FLOT
--)
,#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT t0.FBILLNO AS 'MoBillNo'
,t0.FBILLNO AS 'PMoBillNo'
,CONVERT(varchar(1000),ROW_NUMBER() OVER (ORDER BY t0.FID,t0.FENTRYID,t0.FMATERIALID)) AS 'aPATH'
,CONVERT(varchar(1000),'0') AS 'PPATH'
,CONVERT(VARCHAR(8000),'') AS 'MPath'
,0 AS 'lv'
,t0.FID AS 'MoId'
,t0.FENTRYID AS 'MoEntryId'
,t0.FMATERIALID AS 'MoMaterialId'
,0 AS 'PMoId'
,0 AS 'PMoEntryId'
,0 AS 'PMoMaterialId'
,t0.TopMaterialId
,t0.FMATERIALID
,0 Lot
--,CONVERT(nvarchar(255),t0.FBILLNO) AS 'Lot'
,CONVERT(decimal(23,10),0) AS 'FAMOUNT'
,t0.FPERIOD
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t0
INNER JOIN T_CB_PROORDERDIME tt on t0.FID = tt.FBILLID AND t0.FENTRYID = tt.FBILLENTRYID
INNER JOIN V_CB_COSTALLORESULTSEND t1 on tt.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t2.FENTRYID = t1.FDIMEENTRYID
INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t1.FOUTINSTOCKID
UNION ALL
SELECT ISNULL(t1.FPRODUCTNO,'') AS 'MoBillNo'
,tt.MoBillNo
,CONVERT(varchar(1000),CONCAT(tt.aPATH,'.',ROW_NUMBER() OVER (PARTITION BY tt.MoId,tt.MoEntryId ORDER BY t1.FMATERIALID))) AS 'aPATH'
,tt.aPATH
,CONVERT(varchar(8000),CONCAT(tt.MPath,ISNULL(tt.MoBillNo,''),'>'))
,tt.lv + 1 lv
,ISNULL(t1.FBILLID,0) AS 'MoId'
,ISNULL(t1.FBILLENTRYID,0) AS 'MoEntryId'
,ISNULL(t1.FMATERIALID, 0)
,tt.MoId AS 'PMoId'
,tt.MoEntryId AS 'PMoEntryId'
,tt.MoMaterialId AS 'PMoMaterialId'
,tt.TopMaterialId
,t1.FMATERIALID
,ISNULL(t1.FLOT,0)
,CONVERT(decimal(23,10),t1.FAMOUNT)
,t1.FPERIOD
FROM (SELECT t0.*,t1.FNUMBER
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t0
INNER JOIN T_BD_LOTMASTER t1 on t0.Lot != 0 AND t0.Lot = t1.FLOTID
) tt
CROSS APPLY (
SELECT
t0.FBILLID,t0.FBILLENTRYID
,t0.FPRODUCTNO
,t1.FAMOUNT,t2.FMATERIALID,t2.FLOT
,CONVERT(int,CONVERT(varchar(6) ,t3.FBILLDATE,112)) AS 'FPERIOD'
FROM T_CB_PROORDERDIME t0
INNER JOIN V_CB_COSTALLORESULTSEND t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t2.FENTRYID = t1.FDIMEENTRYID
INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t1.FOUTINSTOCKID
--WHERE tt.FID = t0.FBILLID AND tt.FENTRYID = t0.FBILLENTRYID
WHERE tt.FNUMBER = t0.FPRODUCTNO
--GROUP BY t2.FMATERIALID,t4.FNUMBER,t5.FID,t5e.FENTRYID
) t1
)
, #<23>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT
t0.FPRODUCTDIMEID
,t0.FPRODUCTNO
,t2.FMATERIALID
,SUM(t2.FQUALIFIEDINQTY) '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,SUM(t2e.FQUALIFIEDINAMOUNT) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,SUM(t2.FCURRINPUTAMOUNT) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
FROM T_CB_PROORDERDIME t0
INNER JOIN V_CB_PROORDERINFO t1 ON t1.FPRODUCTDIMEID= t0.FPRODUCTDIMEID
INNER JOIN V_CB_COSTMATTERIAL t2 on t2.FID = t1.FID
INNER JOIN V_CB_COSTMATTERIALDETAIL t2e on t2.FENTRYID = t2e.FENTRYID
WHERE 1 = 1
AND t2.FEXPTYPE = 0
--AND t0.FPRODUCTNO = 'WO2403210039'
AND t2e.FEXPENSESITEMID = 20045
AND t2e.FCOSTITEMID = 20522
GROUP BY t0.FPRODUCTDIMEID
,t2.FMATERIALID
,t0.FPRODUCTNO
)SELECT * FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--SELECT
-- *
-- ,t1.<2E>ܳɱ<DCB3> / t0.<2E><><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * t0.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS '<27><EFBFBD><EAB9A4><EFBFBD><EFBFBD>'
--FROM #<23>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD> t0
-- INNER JOIN #<23><><EFBFBD>Ϸ<EFBFBD><CFB7>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>ϸ t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
-- AND t0.FMATERIALID = t1.FMATERIALID