Files
GateDge2023_ljy/14.宝锐/GZ.LJY000.Biori/SQLServer/获取.sql
PastSaid 3d15fd4b7e a
2025-01-01 08:21:58 +08:00

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