博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Update方法的迭代

Posted on 2011-01-23 00:14  ☆Keep★Moving☆  阅读(174)  评论(0编辑  收藏  举报

DECLARE @COM_ID CHAR(12)
    ,@FSH_JOBNO CHAR(1000)
    ,@COT_cHSCode VARCHAR(1000)
    ,@cCustomerSNC varchar(200)
    ,@cDesc nvarchar(1000)
    ,@cInvoiceNo varchar(8000)
    ,@iPalletQty int
    ,@iQtyCarton int
    ,@engBoardingPort varchar(500)
    ,@chiBoardingPort nvarchar(500)
if not (select object_id('Tempdb..#TEMP16U')) is null drop table #TEMP16U
select com_cCertOriginReqID AS TEMPID,cot_cHSCode,fsh_cJobno
,T_JOBNOS=cast('' as NVARchar(1000)),T_HSCode=cast('' as VARchar(1000))
,csm_cCustomerSNC,T_cCustomerSNC=cast('' as VARchar(200))
,cot_cDesc,T_cDesc=cast('' as NVARchar(1000))
,inv_cInvoiceNo,T_cInvoiceNo=cast('' as VARchar(200))
,pkp_iPalletQty,T_iPalletQty=cast(0 as int)
,(ISNULL(pkd_iQtyCarton,0) + ISNULL(pki_iQty,0)) AS pkd_iQtyCarton,T_iQtyCarton=cast(0 as int)
,PB.ptm_cEngDesc AS engBoardingPort,T_engBoardingPort =cast('' as VARchar(500))
,PB.ptm_cChiDesc AS chiBoardingPort,T_chiBoardingPort =cast('' as NVARchar(500))
,pkd_cDeliveryReqID as cDeliveryReqID,Pkd_lUnitePallet
INTO #TEMP16U
From CertOriginReqMstr_com
INNER JOIN CertOriginReqDtl_cot ON cot_cCertOriginReqID=com_cCertOriginReqID
INNER JOIN InvoiceDetails_ivd ON ivd_cInvoiceID=cot_cInvoiceID AND ivd_iInvDtlID=cot_iInvoiceDtlID
LEFT JOIN InvoiceMaster_inv ON inv_cInvoiceID=ivd_cInvoiceID
INNER JOIN InvoiceDtlRef_ivf ON ivf_cInvoiceID=ivd_cInvoiceID AND ivf_iInvDtlID=ivd_iInvDtlID and ivf_cType = 'P'
INNER JOIN ShipPkgLstDtl_skd ON skd_cShipPkgLstID=ivf_cRefID AND skd_iShipPkgLstDtlID=ivf_iRefDtlID
INNER JOIN PackingListDtl_pkd ON pkd_cPkgLstID=skd_cPkgLstID AND pkd_iPackListDtlID=skd_iPackListDtlID
left join PackingListDitto_pki on pkd_cPkgLstID=pki_cPkgLstID AND pkd_iPackListDtlID=pki_iPackListDtlID and pki_iQtyPerCarton<>0
LEFT JOIN FGShipmentHeader_fsh ON fsh_iFGShipmentID=pkd_iFGShipmentID
LEFT JOIN CustomerShipMstr_csm ON csm_cCustomerID=inv_cCustomerID
LEFT JOIN (SELECT pkp_cPkgLstID,pkp_iPackListDtlID,SUM(pkp_iPalletQty) AS pkp_iPalletQty FROM PackingListPallet_pkp GROUP BY pkp_cPkgLstID,pkp_iPackListDtlID) P ON P.pkp_cPkgLstID=pkd_cPkgLstID AND P.pkp_iPackListDtlID=pkd_iPackListDtlID
INNER JOIN PackingListMstr_pkm ON pkm_cPkgLstID=skd_cPkgLstID AND pkm_lDeduceQty=1
LEFT JOIN ShipmentBooking_shb ON shb_cBookingID=pkm_cBookingID
LEFT JOIN PortMstr_ptm PB ON PB.ptm_cPortID=shb_cBoardingPortID
WHERE com_cCertOriginReqID>='COM051100486' AND com_cCertOriginReqID<='COM051100486' AND DATEDIFF(DD,'2005/11/29 00:00:00' ,com_dAddDate)>=0 AND DATEDIFF(DD,'2005/11/29 00:00:00' ,com_dAddDate)<=0
union all
select com_cCertOriginReqID AS TEMPID,cot_cHSCode,fsh_cJobno
,T_JOBNOS=cast('' as NVARchar(1000)),T_HSCode=cast('' as NVARchar(1000))
,csm_cCustomerSNC,T_cCustomerSNC=cast('' as VARchar(200))
,cot_cDesc,T_cDesc=cast('' as NVARchar(1000))
,inv_cInvoiceNo,T_cInvoiceNo=cast('' as VARchar(8000))
,pkp_iPalletQty,T_iPalletQty=cast(0 as int)
,pkd_iQtyCarton,T_iQtyCarton=cast(0 as int)
,PB.ptm_cEngDesc AS engBoardingPort,T_engBoardingPort =cast('' as VARchar(500))
,PB.ptm_cChiDesc AS chiBoardingPort,T_chiBoardingPort =cast('' as VARchar(500))
,pkd_cDeliveryReqID,Pkd_lUnitePallet
From CertOriginReqMstr_com
INNER JOIN CertOriginReqDtl_cot ON cot_cCertOriginReqID=com_cCertOriginReqID
INNER JOIN InvoiceDetails_ivd ON ivd_cInvoiceID=cot_cInvoiceID AND ivd_iInvDtlID=cot_iInvoiceDtlID
LEFT JOIN InvoiceMaster_inv ON inv_cInvoiceID=ivd_cInvoiceID
INNER JOIN InvoiceDtlRef_ivf ON ivf_cInvoiceID=ivd_cInvoiceID AND ivf_iInvDtlID=ivd_iInvDtlID and ivf_cType = 'D'
LEFT JOIN FGDlvyNoteDtl_fdt ON fdt_cDNoteNo=ivf_cRefID AND fdt_iDtlID=ivf_iRefDtlID
INNER JOIN PackingListDtl_pkd ON pkd_cPkgLstID=fdt_cPkgLstID AND pkd_iPackListDtlID=fdt_iPackListDtlID
LEFT JOIN FGShipmentHeader_fsh ON fsh_iFGShipmentID=pkd_iFGShipmentID
LEFT JOIN CustomerShipMstr_csm ON csm_cCustomerID=inv_cCustomerID
LEFT JOIN (SELECT pkp_cPkgLstID,pkp_iPackListDtlID,SUM(pkp_iPalletQty) AS pkp_iPalletQty FROM PackingListPallet_pkp GROUP BY pkp_cPkgLstID,pkp_iPackListDtlID) P ON P.pkp_cPkgLstID=pkd_cPkgLstID AND P.pkp_iPackListDtlID=pkd_iPackListDtlID
INNER JOIN PackingListMstr_pkm ON pkm_cPkgLstID=fdt_cPkgLstID AND pkm_lDeduceQty=1
LEFT JOIN ShipmentBooking_shb ON shb_cBookingID=pkm_cBookingID
LEFT JOIN PortMstr_ptm PB ON ptm_cPortID=shb_cBoardingPortID
WHERE com_cCertOriginReqID>='COM051100486' AND com_cCertOriginReqID<='COM051100486' AND DATEDIFF(DD,'2005/11/29 00:00:00' ,com_dAddDate)>=0 AND DATEDIFF(DD,'2005/11/29 00:00:00' ,com_dAddDate)<=0
union all
select com_cCertOriginReqID AS TEMPID,cot_cHSCode,bam_cJobno
,T_JOBNOS=cast('' as NVARchar(1000)),T_HSCode=cast('' as NVARchar(1000))
,csm_cCustomerSNC,T_cCustomerSNC=cast('' as VARchar(200))
,cot_cDesc,T_cDesc=cast('' as NVARchar(1000))
,inv_cInvoiceNo,T_cInvoiceNo=cast('' as VARchar(8000))
,0 as pkp_iPalletQty,0 as T_iPalletQty
,0 as pkd_iQtyCarton,0 as T_iQtyCarton
,'' AS engBoardingPort,'' as T_engBoardingPort
,'' AS chiBoardingPort,'' as T_chiBoardingPort
,'' as cDeliveryReqID,'' as Pkd_lUnitePallet
From CertOriginReqMstr_com
INNER JOIN CertOriginReqDtl_cot ON cot_cCertOriginReqID=com_cCertOriginReqID
INNER JOIN InvoiceDetails_ivd ON ivd_cInvoiceID=cot_cInvoiceID AND ivd_iInvDtlID=cot_iInvoiceDtlID
LEFT JOIN InvoiceMaster_inv ON inv_cInvoiceID=ivd_cInvoiceID
INNER JOIN InvoiceDtlRef_ivf ON ivf_cInvoiceID=ivd_cInvoiceID AND ivf_iInvDtlID=ivd_iInvDtlID and ivf_cType = 'A'
LEFT JOIN BillingAdvDtl_bad ON bad_cBillAdvID=ivf_cRefID AND bad_iBillAdvDtlID=ivf_iRefDtlID
LEFT JOIN BillingAdvMstr_bam ON bam_cBillAdvID=bad_cBillAdvID
LEFT JOIN CustomerShipMstr_csm ON csm_cCustomerID=inv_cCustomerID
WHERE com_cCertOriginReqID>='COM051100486' AND com_cCertOriginReqID<='COM051100486' AND DATEDIFF(DD,'2005/11/29 00:00:00' ,com_dAddDate)>=0 AND DATEDIFF(DD,'2005/11/29 00:00:00' ,com_dAddDate)<=0

--select * from #TEMP16U

update #TEMP16U set TEMPID = 'COMTest1' Where fsh_cJobno = '72666'
update #TEMP16U set TEMPID = 'COMTest2' Where fsh_cJobno = '72665'

select * from #TEMP16U

update #TEMP16U set @FSH_JOBNO=case @COM_ID when TEMPID then dbo.ufn_SerialString(@FSH_JOBNO,fsh_cJobno,'/') else RTRIM(isnull(fsh_cJobno,'')) end,T_JOBNOS=@FSH_JOBNO
           ,@COT_cHSCode=case @COM_ID when TEMPID then dbo.ufn_SerialString(@COT_cHSCode,cot_cHSCode,'/') else RTRIM(isnull(cot_cHSCode,'')) end,T_HSCode=@COT_cHSCode
,@cCustomerSNC=case @COM_ID when TEMPID then dbo.ufn_SerialString(@cCustomerSNC,csm_cCustomerSNC,'/') else RTRIM(isnull(csm_cCustomerSNC,'')) end,T_cCustomerSNC=@cCustomerSNC
,@cDesc=case @COM_ID when TEMPID then dbo.ufn_SerialString(@cDesc,cot_cDesc,'/') else RTRIM(isnull(cot_cDesc,'')) end,T_cDesc=@cDesc
,@cInvoiceNo=case @COM_ID when TEMPID then dbo.ufn_SerialString(@cInvoiceNo,inv_cInvoiceNo,'/') else RTRIM(isnull(inv_cInvoiceNo,'')) end,T_cInvoiceNo=@cInvoiceNo
,@iPalletQty=case @COM_ID when TEMPID then @iPalletQty+isnull(pkp_iPalletQty,0) else ISNULL(pkp_iPalletQty,0) end,T_iPalletQty=@iPalletQty
,@iQtyCarton=case @COM_ID when TEMPID then @iQtyCarton+isnull(pkd_iQtyCarton,0) else isnull(pkd_iQtyCarton,0) end,T_iQtyCarton=@iQtyCarton
,@engBoardingPort=case @COM_ID when TEMPID then dbo.ufn_SerialString(@engBoardingPort,engBoardingPort,'/') else RTRIM(isnull(engBoardingPort,'')) end,T_engBoardingPort=@engBoardingPort
,@chiBoardingPort=case @COM_ID when TEMPID then dbo.ufn_SerialString(@chiBoardingPort,chiBoardingPort,'/') else RTRIM(isnull(chiBoardingPort,'')) end,T_chiBoardingPort=@chiBoardingPort
           ,@COM_ID=TEMPID

select * from #TEMP16U


if not (select object_id('Tempdb..#TEMP16U')) is null drop table #TEMP16U