aa
This commit is contained in:
141
07.珠海英搏尔/Enpower.Python/批量查询.sql
Normal file
141
07.珠海英搏尔/Enpower.Python/批量查询.sql
Normal file
@@ -0,0 +1,141 @@
|
||||
DECLARE @period int
|
||||
declare @dbName varchar(100)
|
||||
|
||||
|
||||
SET @period = 201801
|
||||
select @dbName = DB_NAME()
|
||||
if @dbName != 'AIS20231110222743'
|
||||
BEGIN
|
||||
SET @period = 202406
|
||||
END
|
||||
|
||||
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><EFBFBD>') IS NOT NULL)
|
||||
BEGIN
|
||||
DROP TABLE #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
END
|
||||
|
||||
CREATE TABLE #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (
|
||||
MOBILLNO NVARCHAR(255) NOT NULL
|
||||
,PMOBILLNO NVARCHAR(255) NOT NULL
|
||||
,ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD> DECIMAL(23,10) NOT NULL
|
||||
,FPRODUCTDIMEID INT NOT NULL
|
||||
,ALEVEL INT NOT NULL
|
||||
,PLEVEL INT NOT NULL
|
||||
,BILLID INT NOT NULL
|
||||
,BILLENTRYID INT NOT NULL
|
||||
,FPRODUCTID INT NOT NULL
|
||||
,FMATERIALID INT NOT NULL
|
||||
,LOT_TEXT VARCHAR(255) NULL
|
||||
,FPERIOD INT NOT NULL
|
||||
,APATH VARCHAR(1000) NULL
|
||||
,PPATH VARCHAR(1000) NULL
|
||||
,MPATH VARCHAR(8000) NULL
|
||||
)
|
||||
|
||||
INSERT INTO #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT t0.FBILLNO
|
||||
,''
|
||||
,0
|
||||
,t1.FPRODUCTDIMEID
|
||||
,1
|
||||
,0
|
||||
,t1.FBILLID
|
||||
,t1.FBILLENTRYID
|
||||
,t1.FPRODUCTID
|
||||
,t0e.FMATERIALID
|
||||
,t0.FBILLNO
|
||||
,t5.FPERIOD
|
||||
,CONVERT(varchar(1000),ROW_NUMBER() OVER (ORDER BY t0e.FID,t0e.FENTRYID,t0e.FMATERIALID)) AS 'aPATH'
|
||||
,CONVERT(varchar(1000),'0') AS 'PPATH'
|
||||
,CONVERT(VARCHAR(8000),'') AS 'MPath'
|
||||
FROM T_PRD_MO t0
|
||||
INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
|
||||
INNER jOIN T_CB_PROORDERDIME t1 on t1.FBILLID = t0e.FID AND t1.FBILLENTRYID = t0e.FENTRYID
|
||||
INNER JOIN V_CB_PROORDERINFO t2 on t2.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
|
||||
CROSS APPLY(
|
||||
SELECT TOP 1 1 AS 'val',t5.FYEAR *100 + t5.FPERIOD AS 'FPERIOD'
|
||||
FROM V_HS_OUTACCTG t5
|
||||
WHERE t5.FID = t2.FACCTGID
|
||||
AND t5.FYEAR *100 + t5.FPERIOD <= @period
|
||||
ORDER BY t5.FYEAR *100 + t5.FPERIOD DESC
|
||||
) t5
|
||||
WHERE 1 = 1
|
||||
--AND t0.FBILLNO = 'WO2403210039'
|
||||
AND t1.FFORMID = 'PRD_MO'
|
||||
--AND (CONVERT(INT,CONVERT(varchar(6),t0.FDATE,112))) = @period
|
||||
|
||||
DECLARE @num INT,@level int,@LoopCount int
|
||||
SET @num = 1
|
||||
SET @level =1
|
||||
SET @LoopCount = 0;
|
||||
WHILE (@num <> 0 AND @LoopCount < 30)
|
||||
BEGIN
|
||||
;WITH #<23><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD> AS (
|
||||
SELECT t0.FPRODUCTNO
|
||||
,t0.FPRODUCTID
|
||||
,t0.FBILLID
|
||||
,t0.FBILLENTRYID
|
||||
,SUM(t1.FAMOUNT) AS '<EFBFBD><EFBFBD><EFBFBD>ϳɱ<EFBFBD>'
|
||||
,SUM(t1.FQTY) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t2.FMATERIALID
|
||||
,ISNULL(t4.FNUMBER,'') 'FLOT_TEXT'
|
||||
,SUM(t1m.FQUALIFIEDINAMOUNT) '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>깤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,SUM(t1m.FQUALIFIEDINQTY) '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>깤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t5.FPERIOD
|
||||
FROM T_CB_PROORDERDIME t0
|
||||
INNER JOIN V_CB_PROORDERINFO t0e on t0e.FPRODUCTDIMEID = t0.FPRODUCTDIMEID
|
||||
INNER JOIN V_CB_COSTALLORESULTSEND t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
|
||||
INNER JOIN V_CB_COSTMATTERIAL t1m on t1m.FID = t0e.FID
|
||||
INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t2.FENTRYID = t1.FDIMEENTRYID AND t1m.FMATERIALID = t2.FMATERIALID
|
||||
INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t1.FOUTINSTOCKID
|
||||
LEFT JOIN T_BD_LOTMASTER t4 on t4.FLOTID = t2.FLOT
|
||||
CROSS APPLY(
|
||||
SELECT TOP 1 1 AS 'val',(t5.FYEAR * 100 + t5.FPERIOD) AS 'FPERIOD'
|
||||
FROM V_HS_OUTACCTG t5
|
||||
WHERE t5.FID = t0e.FACCTGID
|
||||
AND t5.FYEAR *100 + t5.FPERIOD <= 202407
|
||||
ORDER BY t5.FYEAR *100 + t5.FPERIOD DESC
|
||||
) t5
|
||||
WHERE t0.FPRODUCTNO IN (
|
||||
SELECT DISTINCT tt.LOT_TEXT FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tt
|
||||
WHERE 1=1
|
||||
AND tt.ALEVEL = @level
|
||||
AND tt.LOT_TEXT != '')
|
||||
GROUP BY t0.FPRODUCTNO
|
||||
,t0.FPRODUCTID
|
||||
,t0.FBILLID
|
||||
,t0.FBILLENTRYID
|
||||
,t2.FMATERIALID
|
||||
,t4.FNUMBER
|
||||
,t5.FPERIOD
|
||||
)
|
||||
INSERT INTO #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT t0.FPRODUCTNO
|
||||
,t1.MOBILLNO
|
||||
,CONVERT(decimal(23,10),t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>깤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
,t1.FPRODUCTDIMEID
|
||||
,@level
|
||||
,@level - 1
|
||||
,t0.FBILLID
|
||||
,t0.FBILLENTRYID
|
||||
,t0.FPRODUCTID
|
||||
,t0.FMATERIALID
|
||||
,t0.FLOT_TEXT
|
||||
,t0.FPERIOD
|
||||
,CONVERT(varchar(1000),CONCAT(t1.APATH,'.',ROW_NUMBER() OVER (PARTITION BY t0.FBILLID,t0.FBILLENTRYID ORDER BY t0.FMATERIALID))) AS 'aPATH'
|
||||
,t1.APATH
|
||||
,CONVERT(varchar(8000),CONCAT(t1.MPath,ISNULL(t1.MoBillNo,''),'>'))
|
||||
FROM #<23><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD> t0
|
||||
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t1 on t0.FPRODUCTNO = t1.LOT_TEXT AND t1.LOT_TEXT != ''
|
||||
|
||||
SET @num = @@ROWCOUNT
|
||||
SET @level += 1
|
||||
SET @LoopCount += 1
|
||||
END
|
||||
|
||||
SELECT * FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Reference in New Issue
Block a user