TRUNCATE TABLE textreport
INSERT SHIPTEMPA
SELECT sStoreOutNo,tStoreOutTime ,sCustomerShortName,sOrderNo,sPatternName
,sMaterialCode,sDtlCustomerOrder,sSPUNo,isnull(sCustomerBoxNo,'0') sCustomerBoxNo,sskuno
,SUM(nStoreOutQty) AS nStoreOutQty,sUnit,sColorShade
FROM
(SELECT A.sStoreOutNo,A.sStoreOutType,A.sRemark,CONVERT(VARCHAR(10),A.tStoreOutTime,120) AS tStoreOutTime
,C.bInnerInOutType
,CASE S.sUnit
WHEN '码' THEN
--如果客户等级为1 就需要四舍无入
CASE
WHEN O.sCustomerLevel LIKE '%%1%%' THEN
CASE
WHEN D.nStoreOutQty/0.9144 - CAST((D.nStoreOutQty/0.9144) AS INT) >= 0.5 THEN
CAST(CAST((D.nStoreOutQty/0.9144 ) AS INT) + 1 as NUMERIC(9,1))
ELSE
CAST(CAST((D.nStoreOutQty/0.9144 ) AS INT) AS NUMERIC(9,1))
END
ELSE
--判断整数去除小数位
CASE
WHEN D.nStoreOutQty/0.9144 - CAST((D.nStoreOutQty/0.9144) as INT) < 0.05 THEN
CAST(CAST((D.nStoreOutQty/0.9144 ) AS INT) AS NUMERIC(9,1))
ELSE
CAST(CAST((D.nStoreOutQty/0.9144 ) AS NUMERIC(9,1)) AS NUMERIC(9,1))
END
END
WHEN '米' THEN
--如果客户等级为1 就需要四舍无入
CASE
WHEN O.sCustomerLevel LIKE '%%1%%' THEN
CASE
WHEN D.nStoreOutQty - CAST((D.nStoreOutQty) AS INT) >= 0.5 THEN
CAST(CAST((D.nStoreOutQty) AS INT) + 1 AS NUMERIC(9,1))
ELSE
CAST(CAST((D.nStoreOutQty) AS INT) as NUMERIC(9,1))
END
ELSE
--判断整数去除小数位
CASE D.nStoreOutQty - CAST(D.nStoreOutQty AS int)
WHEN 0 THEN
CAST(CAST((D.nStoreOutQty) AS INT) AS NUMERIC(9,1))
ELSE
CAST(CAST((D.nStoreOutQty) AS NUMERIC(9,1)) AS NUMERIC(9,1))
END
END
END AS nStoreOutQty
,dbo.fnpbGetSKUorSPU(H.sSKUNo) AS sskuno
,I.sPrimaryDefect,sColorShade
,K.sMaterialCode
,L.sOrderNo
,K.sPatternName
,O.sCustomerShortName
,Q.sSPUNo
,CAST(R.sCustomerBoxNo AS INT) AS sCustomerBoxNo
,S.sDtlCustomerOrder,S.sUnit
FROM WeavingERP.dbo.xjimOutHdr A WITH (NOLOCK)
INNER JOIN WeavingERP.dbo.xjimStoreInOutType C WITH (NOLOCK)
ON C.sStoreInOutType=A.sStoreOutType AND sStoreOutType='出货'
INNER JOIN WeavingERP.dbo.xjimOutDtl D WITH (NOLOCK)
ON A.uOutHdrId=D.uOutHdrId
INNER JOIN WeavingERP.dbo.xjimStoreKeepingUnit H WITH (NOLOCK)
ON H.uSKUId=D.uSKUId
INNER JOIN WeavingERP.dbo.xjmmProductMaterial I WITH (NOLOCK)
ON I.uProductMaterialId=H.uProductMaterialId
INNER JOIN dbo.xjsdOrderDtl S WITH (NOLOCK)
ON S.uOrderDtlId=I.uOrderDtlId
INNER JOIN WeavingERP.dbo.xjsdOrderMaterialWeaving K WITH (NOLOCK)
ON K.uOrderMaterialId=S.uOrderMaterialId
INNER JOIN WeavingERP.dbo.xjsdOrderHdr L WITH (NOLOCK)
ON L.uOrderHdrId=K.uOrderHdrId AND L.uOrderHdrId=S.uOrderHdrId
INNER JOIN dbo.xjsdCustomerEx O WITH (NOLOCK)
ON L.uCustomerId=O.uCustomerId
INNER JOIN dbo.xjimStorePackageUnitDtl P WITH (NOLOCK)
ON H.uSKUId = P.uSKUId
INNER JOIN dbo.xjimStorePackageUnitHdr Q WITH (NOLOCK)
ON P.uSPUHdrId=Q.uSPUHdrId AND Q.iType = 3
INNER JOIN dbo.xjpcCustomerBoxDtl R WITH (NOLOCK)
ON Q.uSPUHdrId=R.uSPUHdrId
WHERE C.bInnerInOutType=0 AND A.iStatus=2 --AND G.sStoreName='成品布仓'
) AS aView
WHERE (tStoreOutTime = '2014-09-19')
GROUP BY sStoreOutNo,tStoreOutTime ,sCustomerShortName,sOrderNo,sPatternName
,sMaterialCode,sDtlCustomerOrder,sSPUNo,sCustomerBoxNo,sskuno,sUnit,sColorShade
--B表是待有卷号的
INSERT SHIPTEMPB
SELECT sMaterialCode, sCustomerBoxNo ,sOrderNo ,nStoreOutQty,sColorShade FROM SHIPTEMPA
--表3是得到所有的包号
INSERT SHIPTEMPC
SELECT sStoreOutNo,tStoreOutTime,sCustomerShortName,sOrderNo,sPatternName
,sMaterialCode,sDtlCustomerOrder,sSPUNo,sCustomerBoxNO,sUnit FROM SHIPTEMPA
GROUP BY
sStoreOutNo,tStoreOutTime,sCustomerShortName,sOrderNo,sPatternName
,sMaterialCode,sDtlCustomerOrder,sSPUNo,sCustomerBoxNO,sUnit
DECLARE @sMaterialCode VARCHAR(20)
DECLARE @sCustomerBoxNo VARCHAR(20)
DECLARE @sOrderNo VARCHAR(20)
DECLARE @sColorShade VARCHAR(20)
DECLARE sCustomerBoxNo_VIEW CURSOR FOR
SELECT DISTINCT sOrderNo, sMaterialCode, sCustomerBoxNo,sColorShade FROM SHIPTEMPB
OPEN sCustomerBoxNo_VIEW
FETCH NEXT FROM sCustomerBoxNo_VIEW
INTO @sorderNo,@sMaterialCode, @sCustomerBoxNo,@sColorShade
WHILE @@FETCH_STATUS=0
BEGIN
DECLARE @sSqlText VARCHAR(8000)
DEClare @field VARCHAR(50)
DECLARE @j INT
DECLARE @i INT
SET @i=0
SET @field=''
SET @j=0
INSERT SHIPTEMPD
SELECT * FROM SHIPTEMPB
WHERE sOrderNo=@sOrderNo AND sMaterialCode=@sMaterialCode AND sCustomerBoxNo=@sCustomerBoxNo and sColorShade=@sColorShade
--当前一个包的卷数
SELECT @j=count(*) FROM SHIPTEMPD
SELECT @i=15-@j
WHILE 1<=@i
BEGIN
SET @field =@field+',0'
SET @i=@i-1
END
SELECT @sSqlText= ' INSERT INTO textreport SELECT sOrderNo,sMaterialCode ,sCustomerBoxNo,sColorShade '
SELECT @sSqlText=@sSqlText+', CASE nStoreOutQty WHEN '''+replace(nStoreOutQty,'''','''''')+''' THEN nStoreOutQty
ELSE 0 END AS '''+replace(nStoreOutQty,'''','''''')+''''
FROM SHIPTEMPD
SET @sSqlText=@sSqlText+ @field+' ,'+cast(@j as varchar(30))+''+' FROM SHIPTEMPD GROUP BY sOrderNo,sMaterialCode ,sCustomerBoxNo,nStoreOutQty,sColorShade '
EXEC(@sSqlText)
DELETE SHIPTEMPD
FETCH NEXT FROM sCustomerBoxNo_VIEW
INTO @sorderNo ,@sMaterialCode, @sCustomerBoxNo,@sColorShade
END
CLOSE sCustomerBoxNo_VIEW
DEALLOCATE sCustomerBoxNo_VIEW
SELECT uIden=newID(), sStoreOutNo,tStoreOutTime,sCustomerShortName,sPatternName
,sDtlCustomerOrder,sSPUNo, a.sorderno,a.sMaterialCode,a.sCustomerBoxNo,a.sColorShade
,case sum(qty1) when 0 then null else sum(qty1) end AS No1
,case sum(qty2) when 0 then null else sum(qty2) end AS No2
,case sum(qty3) when 0 then null else sum(qty3) end AS No3
,case sum(qty4) when 0 then null else sum(qty4) end AS No4
,case sum(qty5) when 0 then null else sum(qty5) end AS No5
,case sum(qty6) when 0 then null else sum(qty6) end AS No6
,case sum(qty7) when 0 then null else sum(qty7) end AS No7
,case sum(qty8) when 0 then null else sum(qty8) end AS No8
,case sum(qty9) when 0 then null else sum(qty9) end AS No9
,case sum(qty10) when 0 then null else sum(qty10) end AS No10
,case sum(qty11) when 0 then null else sum(qty11) end AS No11
,case sum(qty12) when 0 then null else sum(qty12) end AS No12
,case sum(qty13) when 0 then null else sum(qty13) end AS No13
,case sum(qty14) when 0 then null else sum(qty14) end AS No14
,case sum(qty15) when 0 then null else sum(qty15) end AS No15
,SUM(nTotal)AS nTotal,nTotalSKU,b.sUnit
FROM textreport a
INNER JOIN SHIPTEMPC b
ON a.sorderno=b.sorderno AND a.smaterialcode=b.smaterialcode AND a.sCustomerBoxNo=b.sCustomerBoxNo
GROUP BY sStoreOutNo,tStoreOutTime,sCustomerShortName,sPatternName
,sDtlCustomerOrder,sSPUNo, a.sorderno,a.sMaterialCode,a.sCustomerBoxNo,nTotalSKU,b.sUnit,a.sColorShade
DELETE SHIPTEMPA
DELETE SHIPTEMPB
DELETE SHIPTEMPC