a
This commit is contained in:
@@ -6,28 +6,55 @@ BEGIN
|
||||
|
||||
;WITH #LEX_MaterialNumber AS(
|
||||
SELECT b.billno
|
||||
--FROM (SELECT CAST('<v>'+REPLACE('41X6129,50X1203,B225X00',',','</v><v>')+'</v>' AS xml) billno) a
|
||||
FROM (SELECT CAST('<v>'+REPLACE(@materialNumber,',','</v><v>')+'</v>' AS xml) billno) a
|
||||
OUTER APPLY (SELECT T.C.value('.','varchar(50)') billno FROM a.billno.nodes('/v') AS T(C)) b
|
||||
)
|
||||
SELECT *
|
||||
,#<23><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> AS (
|
||||
SELECT t1.*
|
||||
FROM #LEX_MaterialNumber tt
|
||||
CROSS APPLY (
|
||||
SELECT t0.FMATERIALID,t0.FNUMBER,t0_l.FNAME
|
||||
--,tt.billno 'FSPECIFICATION'
|
||||
,t0_l.FSPECIFICATION
|
||||
,t1.FNUMBER Unit
|
||||
,CONCAT('FF',ISNULL(t0ap.FAUXPROPERTYID,0)) AS 'FAUXPROPERTYID'
|
||||
,CONVERT(int,t0ap.FISENABLE) FISENABLE
|
||||
,tt.billno LexNumber
|
||||
FROM T_BD_MATERIAL t0
|
||||
INNER JOIN T_BD_MATERIAL_L t0_l on t0_l.FMATERIALID = t0.FMATERIALID
|
||||
AND t0_l.FLOCALEID = 2052
|
||||
INNER JOIN T_BD_MATERIALSALE t0s on t0s.FMATERIALID = t0.FMATERIALID
|
||||
INNER JOIN T_BD_UNIT t1 on t1.FUNITID = t0s.FSALEUNITID
|
||||
LEFT JOIN t_BD_MaterialAuxPty t0ap on t0.FMATERIALID = t0ap.FMATERIALID
|
||||
WHERE 1 = 1 AND t0.FUSEORGID = @ORGID --944852
|
||||
AND (CHARINDEX(tt.billno,t0_l.FNAME) > 0)
|
||||
AND t0.FDOCUMENTSTATUS = 'C'
|
||||
AND t0.FFORBIDSTATUS = 'A'
|
||||
) t0
|
||||
PIVOT
|
||||
(
|
||||
SUM(t0.FISENABLE) FOR
|
||||
t0.FAUXPROPERTYID IN (FF100001,FF100002)
|
||||
) t1
|
||||
)
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT t0.FMATERIALID,t0.FNUMBER,t0_l.FNAME,t0_l.FSPECIFICATION,t1.FNUMBER Unit
|
||||
,CONCAT('FF',ISNULL(t0ap.FAUXPROPERTYID,0)) AS 'FAUXPROPERTYID'
|
||||
,CONVERT(int,t0ap.FISENABLE) FISENABLE
|
||||
FROM T_BD_MATERIAL t0
|
||||
INNER JOIN T_BD_MATERIAL_L t0_l on t0_l.FMATERIALID = t0.FMATERIALID
|
||||
AND t0_l.FLOCALEID = 2052
|
||||
INNER JOIN T_BD_MATERIALSALE t0s on t0s.FMATERIALID = t0.FMATERIALID
|
||||
INNER JOIN T_BD_UNIT t1 on t1.FUNITID = t0s.FSALEUNITID
|
||||
INNER JOIN #LEX_MaterialNumber tx on CHARINDEX(tx.billno,t0_l.FNAME) > 0
|
||||
LEFT JOIN t_BD_MaterialAuxPty t0ap on t0.FMATERIALID = t0ap.FMATERIALID
|
||||
WHERE 1=1
|
||||
AND t0.FUSEORGID = @ORGID
|
||||
SELECT t0.LexNumber,COUNT(1) ls
|
||||
FROM #<23><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> t0
|
||||
GROUP BY t0.LexNumber
|
||||
) t0
|
||||
PIVOT
|
||||
(
|
||||
SUM(t0.FISENABLE) FOR
|
||||
t0.FAUXPROPERTYID IN (FF100001,FF100002)
|
||||
CROSS APPLY (
|
||||
SELECT t1.FMATERIALID,t1.FNUMBER,t1.FNAME,t1.LexNumber 'FSPECIFICATION'
|
||||
,t1.Unit,t1.FF100001,t1.FF100002
|
||||
FROM #<23><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> t1
|
||||
WHERE t1.LexNumber = t0.LexNumber AND t0.ls = 1
|
||||
UNION ALL
|
||||
SELECT t1.FMATERIALID,t1.FNUMBER,t1.FNAME,t1.FSPECIFICATION
|
||||
,t1.Unit,t1.FF100001,t1.FF100002
|
||||
FROM #<23><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> t1
|
||||
WHERE t1.LexNumber = t0.LexNumber AND t0.ls > 1
|
||||
AND (t0.LexNumber = t1.FSPECIFICATION)
|
||||
) t1
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user