300 lines
11 KiB
SQL
300 lines
11 KiB
SQL
;WITH #查询表头名 AS (
|
|
SELECT t0.FID,t0_l.FNAME,REPLACE(t1e.FFIELDKEY,'FSeq','') AS 'EntryName'
|
|
,FKERNELXML.query('//HeadEntity/TableName').value('(TableName)[1]','varchar(max)') as '单据头表名'
|
|
,FKERNELXML
|
|
FROM T_META_OBJECTTYPE t0
|
|
INNER JOIN T_META_OBJECTTYPE_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
|
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = 'FBILLSEQ'
|
|
WHERE 1=1
|
|
--AND t0.FID = @FromId
|
|
AND FISTEMPLATE = 0
|
|
AND FDEVTYPE != 2
|
|
AND FMODELTYPEID = 100
|
|
)
|
|
SELECT t0.单据头表名
|
|
,CONCAT(t0.单据头表名,'Entry') EntryTableName
|
|
,t0.EntryName
|
|
,FKERNELXML.query('//EntryEntity[Key="FSaleOrderEntry"]/TableName').value('(TableName)[1]','varchar(max)') '单据体表名'
|
|
,FKERNELXML
|
|
FROM #查询表头名 t0
|
|
|
|
|
|
SELECT TOP 1 FID
|
|
FROM T_META_CONVERTRULE t0
|
|
WHERE 1 = 1
|
|
AND t0.FSOURCEFORMID = 'PLN_FORECAST'
|
|
AND t0.FTARGETFORMID = 'PRD_MO'
|
|
AND t0.FSTATUS = 1
|
|
ORDER BY t0.FISDEFAULT DESC,t0.FMODIFYDATE DESC
|
|
|
|
SELECT t0.FID,t0_l.FNAME,t1e.FFIELDKEY
|
|
,t1.FBARCODEFIELDKEY
|
|
FROM T_META_OBJECTTYPE t0
|
|
INNER JOIN T_META_OBJECTTYPE_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
|
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = 'FQTY'
|
|
WHERE 1=1
|
|
AND t0.FID = 'STK_InStock'
|
|
AND FISTEMPLATE = 0
|
|
AND FDEVTYPE != 2
|
|
AND FMODELTYPEID = 100
|
|
|
|
|
|
-- 获取
|
|
SELECT t0.FID,t0_l.FNAME
|
|
,t0.FKERNELXML.query('//HeadEntity/TableName').value('(TableName)[1]','varchar(max)') as '单据头表名'
|
|
,REPLACE(t1e.FFIELDKEY,'FSeq','') AS 'SourceEntryKey'
|
|
,REPLACE(t2e.FFIELDKEY,'FSeq','') AS 'TargetEntryKey'
|
|
,t3e.FFIELDKEY
|
|
FROM T_META_OBJECTTYPE t0
|
|
INNER JOIN T_META_OBJECTTYPE_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
|
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = 'FBILLSEQ'
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t2e on t2e.FID = t1.FID AND t2e.FBILLFORMID = 'STK_InStock'
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t3e on t3e.FBILLFORMID = t2e.FBILLFORMID
|
|
INNER JOIN T_BD_BARCODEITEM t3 on t3.FID = t3e.FID AND t3.FBARCODEFIELDKEY = 'FQTY'
|
|
WHERE 1=1
|
|
AND t0.FID = 'PUR_ReceiveBill'
|
|
AND FISTEMPLATE = 0
|
|
AND FDEVTYPE != 2
|
|
AND FMODELTYPEID = 100
|
|
|
|
SELECT t0.FID,t0_l.FNAME,t1e.FFIELDKEY
|
|
,t1.FBARCODEFIELDKEY
|
|
,REPLACE(t2e.FFIELDKEY,'FSeq','') AS 'EntryKey'
|
|
,t0.FKERNELXML.query('//QtyField[Key="FRealQty"]/PropertyName').value('(PropertyName)[1]','varchar(max)') 'QtyFieldName'
|
|
,t0.FKERNELXML
|
|
FROM T_META_OBJECTTYPE t0
|
|
INNER JOIN T_META_OBJECTTYPE_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
|
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = 'FQTY'
|
|
INNER JOIN T_BD_BARCODEITEMENTRY t2e on t2e.FBILLFORMID = t0.FID
|
|
INNER JOIN T_BD_BARCODEITEM t2 on t2.FID = t2e.FID AND t2.FBARCODEFIELDKEY = 'FBILLSEQ'
|
|
WHERE 1 = 1
|
|
AND t0.FID = 'STK_InStock'
|
|
AND t0.FISTEMPLATE = 0
|
|
AND t0.FDEVTYPE != 2
|
|
AND t0.FMODELTYPEID = 100
|
|
|
|
SELECT FID
|
|
,FKERNELXML.query('//ConvertRule/Policies/DefaultConvertPolicy/SourceEntryKey').value('(SourceEntryKey)[1]','varchar(max)') as 'SourceEntryKey'
|
|
,FKERNELXML.query('//ConvertRule/Policies/DefaultConvertPolicy/TargetEntryKey').value('(TargetEntryKey)[1]','varchar(max)') as 'TargetEntryKey'
|
|
,FKERNELXML
|
|
,t0.FSOURCEFORMID
|
|
,t0.FTARGETFORMID
|
|
,t0.FISDEFAULT
|
|
FROM T_META_CONVERTRULE t0
|
|
WHERE 1 = 1
|
|
--AND t0.FSOURCEFORMID = 'PRD_MO'
|
|
--AND t0.FTARGETFORMID = 'PRD_INSTOCK'
|
|
AND t0.FTARGETFORMID = 'STK_InStock'
|
|
AND t0.FSTATUS = 1
|
|
AND t0.FDEVTYPE = 0
|
|
ORDER BY t0.FISDEFAULT DESC,t0.FMODIFYDATE DESC
|
|
|
|
|
|
-- 20241111
|
|
--select *
|
|
--from T_UN_SCANDEFAULT
|
|
|
|
|
|
--SELECT FBILLTYPEID,FBILLFORMID,FISDEFAULT,*
|
|
--FROM T_BAS_BILLTYPE
|
|
--WHERE 1=1
|
|
-- --AND FBILLFORMID = 'PRD_MO'
|
|
-- AND FBILLFORMID = 'PUR_ReceiveBill'
|
|
|
|
|
|
--SELECT *
|
|
--INTO #seqSet
|
|
--FROM (
|
|
-- {string.Join(" UNION ALL ", unionTableList)}
|
|
--)tt
|
|
|
|
SELECT t0.FBILLNO,t0.FID BillId
|
|
,t0e.FENTRYID BillEntryId,t0e.FSEQ
|
|
--,ss.Qty
|
|
FROM T_PRD_MO t0
|
|
INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
|
|
INNER JOIN T_PRD_MORPTENTRY t1e on t1e.FMOENTRYID = t0e.FENTRYID
|
|
--INNER JOIN #seqSet ss on ss.BillNo = t0.FBILLNO AND ss.FSEQ = t0e.FSEQ
|
|
WHERE 1 = 1 AND t0.FDOCUMENTSTATUS = 'C'
|
|
|
|
SELECT t0e.FENTRYID
|
|
FROM T_PUR_RECEIVE t0
|
|
INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.fid = t0e.FID
|
|
WHERE t0.FBILLNO = 'CGSL000026'
|
|
|
|
|
|
SELECT t0e.FMOENTRYID,t0.FBILLNO,t0e.FEntryID
|
|
FROM T_PRD_PACKAGEINSTOCK t0
|
|
INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t0e on t0.FID = t0e.FID
|
|
|
|
|
|
SELECT t0e.FENTRYID,t0e_f.FROWID,t0e_f.FPARENTROWID,t0e_f.FPARENTMATID
|
|
FROM T_SAL_OUTSTOCK t0
|
|
INNER JOIN T_SAL_OUTSTOCKENTRY t0e on t0.FID = t0e.FID
|
|
INNER JOIN T_SAL_OUTSTOCKENTRY_F t0e_f on t0e_f.FENTRYID = t0e.FENTRYID
|
|
WHERE t0.FID = 112202
|
|
ORDER BY t0.FDATE DESC
|
|
|
|
|
|
WITH #基础数据 AS (
|
|
SELECT 100125 FENTRYID,'ZZRK202411130003' BillNo
|
|
)
|
|
SELECT t0.FBILLNO,t0e.FEntryID,t0e.FID,ISNULL(tt.FENTRYID,0) 'EntryId'
|
|
,t0e.FQTY,t0e.FZGSQTY,t0e.FGZLQty
|
|
FROM T_PRD_PACKAGEINSTOCK t0
|
|
INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t0e on t0.FID = t0e.FID
|
|
INNER JOIN #基础数据 t1 on t1.BillNo = t0.FBILLNO
|
|
LEFT JOIN #基础数据 tt on tt.FENTRYID = t0e.FEntryID
|
|
WHERE 1 = 1
|
|
AND t0.FDOCUMENTSTATUS = 'C'
|
|
--AND t0.FBILLNO = 'ZZRK202411130003'
|
|
|
|
|
|
WITH #基础数据 AS (
|
|
SELECT 100125 FENTRYID,'ZZRK202411130003' BillNo, 50 QTY
|
|
)
|
|
SELECT t0.FBILLNO,t0e.FEntryID,t0e.FID,t0.FQTY AS 'PQty'
|
|
,t0.FOUTSTOCKQTY
|
|
,t0e.FQTY,t0e.FZGSQTY,t0e.FGZLQty,t1.baseQty,t2.dataQty
|
|
,t3e.FNUMERATOR,t3e.FDENOMINATOR
|
|
FROM T_PRD_PACKAGEINSTOCK t0
|
|
INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t0e on t0.FID = t0e.FID
|
|
CROSS APPLY (
|
|
SELECT COUNT(1) AS baseQty
|
|
FROM #基础数据 t1
|
|
WHERE t1.BillNo = t0.FBILLNO
|
|
GROUP BY t1.BillNo
|
|
) t1
|
|
CROSS APPLY (
|
|
SELECT COUNT(1) AS dataQty
|
|
FROM T_PRD_PACKAGEINSTOCKENTRY t2e
|
|
WHERE t2e.FID = t0e.FID
|
|
) t2
|
|
INNER JOIN T_ENG_BOM t3 on t3.FID = t0.FBOMID
|
|
INNER JOIN T_ENG_BOMCHILD t3e on t3e.FID = t3.FID AND t3e.FMATERIALID = t0e.FMATERIALID
|
|
WHERE 1 = 1
|
|
|
|
|
|
|
|
SELECT t0e.FENTRYID,t0e.FQTY
|
|
,ISNULL(t1.选单入库合格数量,0) '选单入库合格数量'
|
|
--,ISNULL(t2.选单入库合格数量,0) '已下推未审核合格数量'
|
|
,t3e.FRPTQTY
|
|
FROM T_PRD_MO t0
|
|
INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
|
|
OUTER APPLY (
|
|
SELECT t1e.FMOENTRYID,t1e.FMOBILLNO,SUM(t1e.FFINISHQTY) '选单入库合格数量'
|
|
FROM T_PRD_MORPT t1
|
|
INNER JOIN T_PRD_MORPTENTRY t1e on t1.FID = t1e.FID
|
|
INNER JOIN T_PRD_MORPTENTRY_A t1e_a on t1e_a.FENTRYID = t1e.FENTRYID
|
|
WHERE t1e.FMOENTRYID = t0e.FENTRYID AND t1.FDOCUMENTSTATUS = 'C'
|
|
GROUP BY t1e.FMOENTRYID,t1e.FMOBILLNO
|
|
) t1
|
|
--OUTER APPLY (
|
|
-- SELECT t2e.FMOENTRYID,t2e.FMOBILLNO,SUM(t2e_a.FSTOCKINQUASELQTY) '选单入库合格数量'
|
|
-- FROM T_PRD_MORPT t2
|
|
-- INNER JOIN T_PRD_MORPTENTRY t2e on t2.FID = t2e.FID
|
|
-- INNER JOIN T_PRD_MORPTENTRY_A t2e_a on t2e_a.FENTRYID = t2e.FENTRYID
|
|
-- WHERE t2e.FMOENTRYID = t0e.FENTRYID AND t2.FDOCUMENTSTATUS != 'C'
|
|
-- GROUP BY t2e.FMOENTRYID,t2e.FMOBILLNO
|
|
--) t2
|
|
INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t3e on t3e.FMOENTRYID = t0e.FENTRYID
|
|
WHERE 1 = 1
|
|
AND t0.FDOCUMENTSTATUS = 'C'
|
|
|
|
--20241211 销售出库单
|
|
WITH #基础数据 AS (
|
|
SELECT 156743 'MaterialId',144096 'EntryId',1 'EntrySeq' ,'' AS 'PackBarCode',1 'FRowType','3473790b-c91b-a08a-11ef-b7645430fc76' rowId,'' pRwoId
|
|
UNION ALL SELECT 125771 'MaterialId',144097 'EntryId',2 'EntrySeq' ,'000107' AS 'PackBarCode',2 'FRowType','3473790b-c91b-a08a-11ef-b76464352f75' rowId,'3473790b-c91b-a08a-11ef-b7645430fc76' pRwoId
|
|
UNION ALL SELECT 126471 'MaterialId',144098 'EntryId',3 'EntrySeq' ,'000107' AS 'PackBarCode',2 'FRowType','3473790b-c91b-a08a-11ef-b76464352f76' rowId,'3473790b-c91b-a08a-11ef-b7645430fc76' pRwoId
|
|
UNION ALL SELECT 126146 'MaterialId',144099 'EntryId',4 'EntrySeq' ,'000107' AS 'PackBarCode',2 'FRowType','3473790b-c91b-a08a-11ef-b76464352f77' rowId,'3473790b-c91b-a08a-11ef-b7645430fc76' pRwoId
|
|
)
|
|
, #初步处理 AS (
|
|
SELECT t0.MaterialId,t0.EntryId,t0.EntrySeq
|
|
,CASE WHEN t0.PackBarCode = '' and t0.FRowType = 1 THEN (
|
|
SELECT TOP 1 t1.PackBarCode FROM #基础数据 t1 WHERE t1.pRwoId = t0.rowId
|
|
) ELSE t0.PackBarCode END 'PackBarCode'
|
|
,t0.FRowType,t0.rowId,t0.pRwoId
|
|
FROM #基础数据 t0
|
|
)
|
|
SELECT tt.*,t0.FBARCODE,t0.FBILLNO,t0.FBILLID,t0.FBILLENTRYID,t0.FBILLSEQ,t0.FBILLFORMID
|
|
,t1.*,t2.FNUMERATOR,t2.FDENOMINATOR
|
|
FROM #初步处理 tt
|
|
INNER JOIN T_UNW_WMS_BARCODE t0 on t0.FBARCODE = tt.PackBarCode
|
|
CROSS APPLY (
|
|
SELECT t1.FBILLNO,t1e.FEntryID,t1e.FSeq,t1e.FQTY,t1e.FGZLQTY,t1e.FZGSQTY,t1e.FUNITID,t1e.FFYLQTY,t1.FBOMID,t1e.FMATERIALID
|
|
,t1.FQTY AS 'MainQty'
|
|
FROM T_PRD_PACKAGEINSTOCK t1
|
|
INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t1e on t1.FID = t1e.FID
|
|
WHERE t1.FSRCBILLENTRYID = t0.FBILLENTRYID
|
|
AND t1e.FMATERIALID = tt.MaterialId
|
|
AND tt.FRowType = t1e.FPRODUCTTYPE
|
|
UNION ALL
|
|
SELECT t1.FBILLNO,0 FEntryID,0,t1.FQTY,0,0,0,t1.FFYLQTY,t1.FBOMID,t1.FMATERIALID
|
|
,t1.FQTY AS 'MainQty'
|
|
FROM T_PRD_PACKAGEINSTOCK t1
|
|
WHERE t1.FSRCBILLENTRYID = t0.FBILLENTRYID
|
|
AND t1.FMATERIALID = tt.MaterialId
|
|
AND tt.FRowType = t1.FPRODUCTTYPE
|
|
) t1
|
|
LEFT JOIN T_ENG_BOMCHILD t2 on t2.FID = t1.FBOMID AND t1.FMATERIALID = t2.FMATERIALID
|
|
ORDER BY tt.EntrySeq
|
|
|
|
--2024-12-13
|
|
WITH #基础数据 AS (
|
|
SELECT 100304 FENTRYID,'ZZRK202412130001' BillNo, 0.100 QTY ,0 FYLCK
|
|
UNION ALL SELECT 100305 FENTRYID,'ZZRK202412130001' BillNo, 1.25 QTY ,0 FYLCK
|
|
UNION ALL SELECT 100306 FENTRYID,'ZZRK202412130001' BillNo, 0.051 QTY ,0 FYLCK
|
|
)
|
|
, #关联数据 AS (
|
|
SELECT t0.FBILLNO,t0e.FEntryID,t0e.FID
|
|
,t0.FQTY AS 'PQty'
|
|
,(t0e.FQTY - t0e.FFYLQTY)/ t2e.FNUMERATOR * t2e.FDENOMINATOR AS '父项数量'
|
|
,(t6.QTY)/ t2e.FNUMERATOR * t2e.FDENOMINATOR * t5.F_UNITIDHS AS '实际出库父项数量'
|
|
,(t0e.FFYLQTY) /t2e.FNUMERATOR * t2e.FDENOMINATOR AS '富余量'
|
|
,t0.FOUTSTOCKQTY
|
|
,t0e.FQTY
|
|
,t0e.FZGSQTY,t0e.FGZLQty
|
|
,t0e.FFYLQTY
|
|
,t2e.FNUMERATOR,t2e.FDENOMINATOR
|
|
,t5.F_UNITIDHS
|
|
,t6.FYLCK
|
|
,ROW_NUMBER() OVER (PARTITION BY t0.FID ORDER BY t0e.FENTRYID) RN
|
|
FROM T_PRD_PACKAGEINSTOCK t0
|
|
INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t0e on t0.FID = t0e.FID
|
|
INNER JOIN T_ENG_BOM t2 on t2.FID = t0.FBOMID
|
|
INNER JOIN T_ENG_BOMCHILD t2e on t2e.FID = t2.FID AND t2e.FMATERIALID = t0e.FMATERIALID
|
|
INNER JOIN T_BD_MATERIAL t5 on t5.FMATERIALID = t0e.FMATERIALID
|
|
INNER JOIN #基础数据 t6 on t6.FENTRYID = t0e.FEntryID
|
|
WHERE 1 = 1
|
|
)
|
|
UPDATE t1 SET t1.FQTY = t1.FQTY - t0.实际出库父项数量
|
|
,t1.FOUTSTOCKQTY = t1.FOUTSTOCKQTY + t0.实际出库父项数量
|
|
FROM #关联数据 t0
|
|
INNER JOIN T_PRD_PACKAGEINSTOCK t1 on t1.FID = t0.FID
|
|
CROSS APPLY (
|
|
SELECT COUNT(1) bQty
|
|
FROM #关联数据 t2
|
|
WHERE t2.FID = t0.FID
|
|
GROUP BY t2.FID
|
|
HAVING AVG(t2.实际出库父项数量) = t0.实际出库父项数量
|
|
) t2
|
|
CROSS APPLY (
|
|
SELECT COUNT(1) AS dQty
|
|
FROM T_PRD_PACKAGEINSTOCKENTRY t4e
|
|
WHERE t4e.FID = t0.FID
|
|
GROUP BY t4e.FID
|
|
) t4
|
|
WHERE t2.bQty = t4.dQty
|
|
AND t0.FYLCK = 0
|
|
AND t0.RN = 1
|
|
|
|
--2024-12-16 关联优联扫描记录
|
|
SELECT t0.FTOROWID,t0.FBARCODEID,t0.FBOXCODEID,t0.*
|
|
FROM T_UNW_WMS_NORMALRECORD t0
|
|
WHERE t0.FTOFORMID = 'SAL_OUTSTOCK'
|
|
ORDER BY t0.FTOROWID |