/****** Object: StoredProcedure [dbo].[GetOrderData] Script Date: 2025/8/20 10:19:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --EXEC [GetOrderData] '珠海派诺','2025-01-01','2025-06-30' ALTER PROCEDURE [dbo].[GetOrderData] ( @FSaleOrgIdName nvarchar(1000), @FSDate nvarchar(1000), @FEDate nvarchar(1000), @FPaperContract NVARCHAR(500)='', @QuYu NVARCHAR(500)='' ) as DECLARE @FSaleOrgId nvarchar(1000); DECLARE @FSDateDate DATE; DECLARE @FEDateDate DATE; SELECT @FSaleOrgId = FORGID FROM T_ORG_ORGANIZATIONS_L WHERE FNAME = @FSaleOrgIdName SET @FSDateDate = CONVERT(DATE, @FSDate); SET @FEDateDate = CONVERT(DATE, @FEDate); -- @FEDate + 1天 SET @FEDateDate = DATEADD(DAY, 1, @FEDateDate); SELECT D.FENTRYID,sum(b.fqty) AS 'FQTY',sum(E.FAllAmount_LC) AS 'FAMOUNT' INTO #SAL FROM T_SAL_DELIVERYNOTICE A INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID WHERE A.FDOCUMENTSTATUS= 'C' AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) AND (a.F_PAPERCONTRACT=@FPaperContract OR @FPaperContract='') GROUP BY D.FENTRYID SELECT D.FENTRYID,sum(b.fqty) AS 'FQTY',sum(E.FAllAmount_LC) AS 'FAMOUNT' INTO #RETURN FROM T_SAL_RETURNNOTICE A INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID INNER JOIN T_SAL_RETURNNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID WHERE A.FDOCUMENTSTATUS= 'C' AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) AND (a.F_PAPERCONTRACT=@FPaperContract OR @FPaperContract='') GROUP BY D.FENTRYID SELECT F.FENTRYID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT' INTO #OUTSTOCK FROM T_SAL_OUTSTOCK A INNER JOIN T_SAL_OUTSTOCKENTRY B ON A.FID = B.FID INNER JOIN T_SAL_OUTSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID INNER JOIN T_SAL_OUTSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID INNER JOIN T_SAL_DELIVERYNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID WHERE A.FDOCUMENTSTATUS= 'C' AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='') GROUP BY F.FENTRYID SELECT F.FENTRYID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT' INTO #RETURNSTOCK FROM T_SAL_RETURNSTOCK A INNER JOIN T_SAL_RETURNSTOCKENTRY B ON A.FID = B.FID INNER JOIN T_SAL_RETURNSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID INNER JOIN T_SAL_RETURNSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID INNER JOIN T_SAL_RETURNNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID INNER JOIN T_SAL_RETURNNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID WHERE A.FDOCUMENTSTATUS= 'C' AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='') GROUP BY F.FENTRYID --SELECT b.FORDERENTRYID as 'FENTRYID',sum(bF.FQty) AS 'FQTY',sum(bF.FRECAMOUNT_E) AS 'FAMOUNT' --INTO #RECE --FROM t_AR_receivable A ----INNER JOIN t_AR_receivableENTRY B ON A.FID = B.FID --LEFT JOIN dbo.T_AR_RECEIVEBILLENTRY bF on A.FID = BF.FID --销售订单表体 --WHERE A.FDOCUMENTSTATUS= 'C' --AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) --AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) --AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) --AND (a.F_PAPERCONTRACT=@FPaperContract OR @FPaperContract='') --GROUP BY b.FORDERENTRYID SELECT a.FID, STUFF( ( SELECT ','+ CONVERT(NVARCHAR(100), FNAME,120) -- 要拼接的列 FROM ( SELECT DISTINCT x.FNAME +'--'+CONVERT(NVARCHAR(50), CONVERT(INT, w.F_DAY))+'天--'+CONVERT(NVARCHAR(50),CONVERT(DECIMAL(18,2), w.FRECADVANCERATE))+'%'+'---' +ISNULL(CONVERT(NVARCHAR(20),w.FMUSTDATE,23),'') AS FNAME ,w.FID,w.F_PMSDate ,W.FRECADVANCEAMOUNT,w.F_DAY ,w.F_MBBA_DECIMAL_UKY ,w.FENTRYID, W.F_RecConditionId ,w.FRECADVANCERATE ,x.FNAME AS fname2 ,w.FMUSTDATE [到期日] FROM T_SAL_ORDERPLAN w WITH(NOLOCK) LEFT JOIN T_BD_RecCondition_L X ON X.FID = W.F_RecConditionId ) t WHERE t.FID=a.FID FOR XML PATH('') ),1 ,1, '') 付款条件 INTO #TEMP2 FROM T_SAL_ORDER A WITH(NOLOCK) WHERE A.FDOCUMENTSTATUS= 'C' AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='') --过滤派诺总 SELECT A.FID AS FID INTO #TEMP3 FROM T_SAL_ORDER A INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 LEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C' left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.名称=O.FNAME LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.名称=L.FNAME WHERE A.FSALEORGID = 100302 AND (ACO.区域 = '碳索智控' OR ACL.区域 = '碳索智控' OR C.FCUSTID IN ('1517849','1156999','1149200') OR (C.FCUSTID = 1150173 AND (ACO.区域 = '决策团队' OR ACL.区域 = '决策团队')) OR L.FNAME = '兴诺总' OR A.FID IN (110185,207800) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE< @FEDateDate) ) SELECT A.FID , A.FBILLNO , B.FENTRYID , a.F_INVOICEAMOUNT '开票金额', j.FBILLALLAMOUNT- a.F_INVOICEAMOUNT '未开票金额', ISNULL(N.FSHARERATE,100) AS FSHARERATE, F.FALLAMOUNT_LC , MONTH(A.FApproveDate) AS '月份' --销售订单-单据头-日期-对应的月份 ,CASE WHEN ISNULL(O.FNAME,'')='' THEN L.FNAME ELSE O.FNAME END as '业绩分摊后销售员' -- 业绩分摊后销售员 ,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END AS '区域' ,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.明细区域 ELSE ACO.明细区域 END AS '明细区域' ,c.FNAME as '购货单位' --销售订单-单据头-客户 ,CONVERT(VARCHAR(10), A.FDate,23) AS '签订日期' ,CONVERT(VARCHAR(10), A.FApproveDate,23) AS '审核日期' --销售订单-单据头-审核日期 ,A.F_contractnumber AS '纸质合同号'--销售订单-单据头-纸质合同号 ,E.FNUMBER AS '产品代码' ,d.FNAME as '产品名称' --销售订单-单据体-物料名称 ,d.FSPECIFICATION as '规格型号'--销售订单-单据体-规格型号 ,CONCAT(A.F_contractnumber,d.FSPECIFICATION ) as '订单规格型号' --H【订单号】(对应纸质合同号)+J【型号\规格\标准】 ,CASE WHEN E.FNUMBER LIKE 'L%' AND HT.FNUMBER = 'SX' AND ISNULL(b.F_ProjectProposal,'') != '' THEN CONCAT(b.F_ProjectProposal,'的剩余部分') ELSE E.F_114 END AS '型号分类' --物料档案-自定义字段-型号大类 ,CASE WHEN E.FNUMBER LIKE 'L%' AND HT.FNUMBER = 'SX' AND ISNULL(b.F_ProjectProposal,'') != '' THEN CONCAT(b.F_ProjectProposal,'的剩余部分') ELSE E.F_115 END AS '产品分类'--物料档案-自定义字段-产品大类 ,E.F_116 AS '产品线'--物料档案-自定义字段-产品线 --,'' as '业务线' --待定,确认取数逻辑 ,CASE WHEN A.F_VRYF_Combo_lsn LIKE '%XTZHT%' THEN '系统主合同' WHEN A.F_VRYF_Combo_lsn LIKE '%SXTXS%' THEN '随系统销售' WHEN A.F_Returntype = 'HH' OR A.F_Returntype = 'TH' THEN '随系统销售' WHEN F_VRYF_Combo_lsn LIKE 'DDXS' THEN '单独销售'END as '销售类型' ,CASE WHEN A.F_VRYF_Combo_lsn LIKe '%DDXS%' THEN '仪表类合同(CEP)' ELSE '随系统销售' END AS '销售类型1' --,cast( B.FQTY as real) AS '数量台' --销售订单-单据体-销售数量显示在业绩分摊单 ,cast( ROUND( F.FTAXPRICE,2) as real) AS '单价元台' --销售订单-单据体-含税单价 "业绩分摊只分摊金额不分摊数量 ,cast( ROUND( f.FALLAMOUNT_LC,2) as real) as '行含税单价' ,CASE WHEN n.FSHARERATE IS NULL THEN ROUND(F.FALLAMOUNT_LC,2) ELSE ROUND( f.FALLAMOUNT_LC * (n.FSHARERATE/100) ,2) END as '合同总价' --业绩分摊只分摊金额不分摊数量,分录【价税合计本位币】*业绩分摊单中的分摊比例 , G.FNAME as '销售订单-单据头-项目名称' --销售订单-单据头-项目名称 ,y.FCAPTION AS '项目所属领域'--销售订单-单据头-项目所属领域 ,CASE WHEN A.F_contractnumber LIKE 'W2%' OR A.F_contractnumber LIKE 'CW%' THEN '服务业务' WHEN (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%综合能源服务%' OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%数据中心%' THEN '行业解决方案业务' ELSE '产品业务' END AS '业务类型-按产品划分' ,CASE WHEN I.F_CustomerType= 'JXS' THEN '经销商' WHEN I.F_CustomerType = 'MYS' THEN '贸易商' ELSE '' END as '直销还是经销商' ,CASE WHEN b.F_specialoffer = '1' THEN '是' ELSE '否' end AS '是否特价'--销售订单-单据分录-是否特价 ,CASE WHEN (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%产品线%' OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%决策团队%'OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%三电产品线%' THEN '产品线' WHEN (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) like '数据中心' OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%医院%' OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END) LIKE '%机场%' THEN '行业线' ELSE '区域线' END AS '业绩类型' ,CASE WHEN N.FSHARERATE is null THEN '100' ELSE CONCAT( CAST ( N.FSHARERATE AS REAL),'%') END as '业绩分摊比例' --销售订单-业绩分摊单-分摊比例 , b.F_ProjectProposal AS '项目方案类型' ,a.F_Amount AS '收款金额' --待定 收款金额 , CAST( J.FEXCHANGERATE AS REAL) AS '汇率' --销售订单-单据头-汇率 ,H.F_Province AS '项目所属省份' --字段名改成“项目所属省份”来自于CRM系统商机,ERP商机需要增加文本字段对应 ,h.F_City AS '项目所属城市' --字段名改成“项目所属城市”来自于CRM系统商机,ERP商机需要增加文本字段对应 ,u.FCAPTION AS '表计或系统'--表计或系统 此字段需要在销售订单中体现,来自于ERP物料档案,订单执行统计报表不需要体现此字段,由于应收款明细表需要从订单执行明细表中取该字段,所以此字段还需要保留。取销售订单-单据头-订单类别 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FID ORDER BY A.FID, B.FENTRYID ,FSHARERATE desc) = 1 THEN CAST(J.FBILLALLAMOUNT_LC AS numeric(18,2)) ELSE NULL END AS '订单总额' ,K.FDATAVALUE AS '企业类型公司性质'--来自于客户资料-公司性质 ,'' AS '欠款总额' --【已交货金额(含退货)-收款金额】*业绩分摊比例 , TU.FNAME AS '制单人' --销售订单-单据头-其他页签-创建人,希望取的是销售订单提交人, ,S.FCAPTION AS '集采业务分类' --2024-11-20沟通新增字段,销售订单表头增加:【是否集采项目】下拉选项:否/华润/龙湖/绿地/保利地产/华润非集采,常规情况下默认为【否】,由CRM系统传递到ERP系统中,默认值为否 ,L.FNAME AS '销售订单业务员' --,CAST(B.FQTY AS REAL) AS '数量台' , CASE WHEN N.FSHARERATE IS NOT NULL THEN CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FID, B.FENTRYID ORDER BY N.FENTRYID) = 1 THEN CAST(B.FQTY AS REAL) ELSE NULL END ELSE CAST(B.FQTY AS REAL) END AS '数量台' ,AE.FDATAVALUE AS '合同类型' ,assl.FDATAVALUE '客户信用及分类' INTO #TEMP4 FROM T_SAL_ORDER A --销售订单表头 INNER JOIN T_BAS_ASSISTANTDATAENTRY HT ON A.F_ORDERCATEGORY = HT.FMASTERID -- 关联辅助资料查询合同的编码 INNER JOIN T_SEC_USER TU ON A.FCreatorId = TU.FUSERID -- 用户单关联表体 INNER JOIN T_SAL_orderentry b on a.FID = B.FID --销售订单表体 INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 --客户附属表 INNER JOIN T_BD_MATERIAL_L d on d.FMATERIALID =b.FMATERIALID and d.FLOCALEID=2052 --物料附属表 INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID =D.FMATERIALID INNER JOIN T_SAL_ORDERENTRY_F F ON F.FENTRYID = B.FENTRYID INNER JOIN T_SAL_ORDERENTRY_R AR ON AR.FENTRYID = B.FENTRYID INNER JOIN T_BD_CUSTOMER I ON I .FCUSTID = A.FCUSTID INNER JOIN T_SAL_ORDERFIN J ON J.FID= A.FID LEFT JOIN T_BAS_PREBDONE_L G ON G.FID = A.F_projectname AND G.FLocaleID =2052 LEFT JOIN T_BAS_PREBDTHREE H ON H.FID = A.F_BON LEFT JOIN T_META_FORMENUMITEM Z ON Z.FVALUE = H.F_PROJECTFIELD AND Z.FID = '3ad5efac-d4a5-467c-b290-685a22791e68' LEFT JOIN T_META_FORMENUMITEM_L Y ON Y.FENUMID = Z.FENUMID AND Y.FLOCALEID = 2052 LEFT JOIN T_META_FORMENUMITEM X ON x.FVALUE = I.F_CustomerType AND X.FID = '5fbc5d34-7347-4b6d-8a9d-4816a47936cc' LEFT JOIN T_META_FORMENUMITEM_L W ON W.FENUMID = X.FENUMID AND W.FLOCALEID = 2052 LEFT JOIN T_META_FORMENUMITEM V ON V.FVALUE = A.F_OrderType AND v.FID = 'bc2c1d77-0f4b-41d2-b61b-e29554c570d4' LEFT JOIN T_META_FORMENUMITEM_L U ON U.FENUMID = V.FENUMID AND U.FLOCALEID = 2052 LEFT JOIN T_META_FORMENUMITEM T ON T.FVALUE = A.F_PURCHASINGPRO AND T.FID = 'a8624cbb-00e0-4beb-8045-53cbe94eb9ee' LEFT JOIN T_META_FORMENUMITEM_L S ON S.FENUMID = T.FENUMID AND S.FLOCALEID = 2052 LEFT JOIN V_ASSISTANTDATA K ON K.FENTRYID = I.FCompanyNature LEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C' left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID --AND N.FID IN (SELECT FID FROM T_PerformanceSharing WHERE FDOCUMENTSTATUS = 'C' ) LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.名称=O.FNAME AND ISNULL(ACO.明细区域,'') != '' LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.名称=L.FNAME AND ISNULL(ACL.明细区域,'') != '' INNER JOIN T_BAS_ASSISTANTDATAENTRY_L AE ON AE.FENTRYID = A.F_Ordercategory LEFT JOIN dbo.T_BAS_ASSISTANTDATAENTRY_L assl ON assl.FENTRYID= a.F_CREDITCLASSIFICATIONTEXT WHERE 1=1 AND A.FID NOT IN( SELECT FID FROM #TEMP3 ) AND(@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId) AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate) AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate) AND A.FDocumentStatus = 'C' AND A.FManualClose <> '1' AND B.FManualRowClose <> '1' AND A.F_contractnumber NOT LIKE 'Z%' AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='') SELECT A.* ,AD.付款条件 as '付款条件'--销售订单-收款计划-收款条件+天数+“天”+应收比例(%),多行之间需要用“,”隔开,如果天数为空就默认为0天 ,CAST( ISNULL(P.FQTY,'0') AS REAL) as '发货数量' --销售订单关联的发货通知单数量,显示在业绩分摊单中第一个业务员名下 ,cast( round( ISNULL(P.FAMOUNT,0) * ISNULL(A.FSHARERATE,100)/100,2) as real) as '发货金额'--取销售订单关联的发货通知单金额*分摊比例 ,CAST( ISNULL(q.FQTY,'0') AS REAL) as '退货数量' --销售订单关联的退货通知单数量 ,cast( round( ISNULL(q.FAMOUNT,0) * ISNULL(A.FSHARERATE,100)/100,2) as real) as '退货金额'--销售订单关联的退货通知单金额*分摊比例 ,CAST( ISNULL(P.FQTY,0)-isnull(q.FQTY,0) AS REAL) AS '已交货数-含退货' --公式=发货通知单数量-退货通知单数量,显示在业绩分摊单中第一个业务员名下,AR【发货数量】-AT【退货数量】 ,round( (ISNULL(P.FAMOUNT,0)-isnull(q.FAMOUNT,0)) * isnull(A.FSHARERATE,100)/100 ,2) AS '已交货金额-含退货' --2024-11-20沟通增加销售定关联的(AS发货金额-AU退货金额)*业绩分摊比例 ,B.FQTY - AR.FDeliQty AS '未交货数' --数量-已交货数 , round( (A.FALLAMOUNT_LC - ISNULL(P.FAMOUNT,0) +ISNULL(Q.FAMOUNT,0))* isnull(A.FSHARERATE,100)/100,2) as '未发货金额'--(销售订单价税合计本位币-发货通知单金额+退货通知单金额)*分摊比例 --,CAST( ISNULL(AB.FQTY,0) AS REAL) AS '已开票数量' --开票数量,取销售出库单关联的蓝字应收单-退货单关联的红字应收单 --,CAST(round( ISNULL(AB.FAMOUNT,0) * isnull(A.FSHARERATE,100)/100,2) AS REAL) AS '开票金额'--销售订单关联的(蓝字应收单金额-红字应收单金额)*分摊比例 --,CAST( ISNULL(P.FQTY,0)-isnull(q.FQTY,0) - ISNULL(AB.FQTY,0) AS REAL) AS '未开票数量' --AV已交货数-BB已开票数量 --,round( (ISNULL(P.FAMOUNT,0)-isnull(q.FAMOUNT,0)- ISNULL(AB.FAMOUNT,0) ) * isnull(A.FSHARERATE,100)/100 ,2) AS '未开票金额' --(AW已交货金额-BC开票金额)*分摊比例 ,ISNULL(G.F_CONTRACTNUMBER,'') AS '源订单号' ,CONVERT(DECIMAL(18,2),0) AS 分摊金额 ,0 rownum INTO #TEMP1 FROM #TEMP4 A LEFT JOIN T_SAL_orderentry b on a.FENTRYID = B.FENTRYID --销售订单表体 LEFT JOIN dbo.T_SAL_ORDERENTRY_F bF on a.FENTRYID = bF.FENTRYID --销售订单表体 LEFT JOIN T_SAL_ORDERENTRY_R AR ON AR.FENTRYID = A.FENTRYID LEFT JOIN #SAL P ON P.FENTRYID = A.FENTRYID --发货通知单 LEFT JOIN #RETURN q ON q.FENTRYID = A.FENTRYID --退货通知单 LEFT JOIN #OUTSTOCK R ON R.FENTRYID = A.FENTRYID --销售出库单 LEFT JOIN #RETURNSTOCK AA ON AA.FENTRYID = A.FENTRYID --销售退货单 --LEFT JOIN #RECE AB ON AB.FENTRYID = A.FENTRYID --应收单 LEFT JOIN #TEMP2 AD ON AD.FID = A.FID LEFT JOIN ( SELECT T1.FENTRYID,T3.F_CONTRACTNUMBER FROM T_SAL_ORDERENTRY_R T1 --LEFT JOIN T_SAL_ORDER T2 on T1.FID = T2.FID LEFT JOIN T_SAL_ORDER T3 on T3.FBILLNO = T1.FSRCBILLNO WHERE T1.FSRCTYPE = 'SAL_SaleOrder' )G ON A.FENTRYID = G.FENTRYID AND A.[合同总价]<0 ORDER BY fid,FENTRYID ,FSHARERATE UPDATE #TEMP1 SET 分摊金额=b.合同总价2 FROM (SELECT SUM(CONVERT(DECIMAL(18,2),合同总价)) AS 合同总价2 ,FBILLNO FROM #TEMP1 GROUP BY FBILLNO) b WHERE #TEMP1.FBILLNO=b.FBILLNO AND 订单总额 <>0 UPDATE #TEMP1 SET rownum=b.rownum2 FROM (SELECT ROW_NUMBER() OVER (PARTITION BY FID ORDER BY FID,FENTRYID) AS rownum2, FID, FENTRYID FROM #TEMP1 ) b WHERE #TEMP1.FID=b.fid AND #TEMP1.FENTRYID=b.FENTRYID UPDATE #TEMP1 SET 收款金额=0,开票金额=0,未开票金额=0 WHERE rownum>1; UPDATE #TEMP1 SET 合同总价=合同总价+(订单总额- 分摊金额 ) WHERE 订单总额<>0 UPDATE #TEMP1 SET 收款金额=收款金额*订单本位币兑人民币汇率,开票金额=开票金额*订单本位币兑人民币汇率,订单总额=订单总额*订单本位币兑人民币汇率,合同总价=合同总价*订单本位币兑人民币汇率 ,发货金额=发货金额*订单本位币兑人民币汇率,未发货金额=未发货金额*订单本位币兑人民币汇率,退货金额=退货金额*订单本位币兑人民币汇率,[已交货金额-含退货]=[已交货金额-含退货]*订单本位币兑人民币汇率 ,未开票金额=未开票金额*订单本位币兑人民币汇率,单价元台=单价元台*订单本位币兑人民币汇率,行含税单价=行含税单价*订单本位币兑人民币汇率 FROM ZZV_XiaoShouHuiLv b WHERE #TEMP1.FID=b.销售订单ID IF(@QuYu='') SELECT * FROM #TEMP1 ORDER BY fid,FENTRYID ,FSHARERATE DESC ELSE SELECT * FROM #TEMP1 WHERE 区域 LIKE '%'+@QuYu+'%' ORDER BY fid,FENTRYID ,FSHARERATE DESC drop table #TEMP2 --drop table #RECE drop table #RETURNSTOCK drop table #OUTSTOCK drop table #RETURN drop table #SAL drop table #TEMP3 drop table #TEMP4 drop table #TEMP1