Alter PROCEDURE GetSalesOrderDetails ( @SalesOrg NVARCHAR(50) = '', @ContractNumber NVARCHAR(50) = '', -- 合同编号 --@StartDate NVARCHAR(10) = '', -- 开始日期 --@EndDate NVARCHAR(10) = '', -- 结束日期 @FStartDate2 nvarchar(1000), @FEndDate2 nvarchar(1000) ) -- 销售组织 AS Select A.FDate as 'Date', AAAA.FNAME as 'OrderName', --制单人 A.FAPPROVEDATE as 'OrderDate',--下单日期 ISNULL(B.FNAME,'') as 'ClientName', --客户名称 A.F_contractnumber as 'ContractNumber', --纸质合同号 ISNULL(C.FNAME,'') as 'ProjectName', --项目名称 ISNULL(D.FNAME,'') as 'Salesman', --销售员 (Select SUM(a1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' From T_SAL_ORDERENTRY_F a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID Where a2.FMANUALROWCLOSE!='1' AND a1.FID = A.FID ) as 'ContractPrice', --合同金额 (Select STRING_AGG(aa2.FNAME,',') as 'FNAME' From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2 on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO)) as 'CollectionName', --收款负责人 (Select STRING_AGG((CONVERT(nvarchar,aa1.FDATE,23)),',') as 'FDate' From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2 on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO)) as 'CollectionDate', --收款日期 ISNULL(A.F_AMOUNT,0) as 'CollectionAmount', --收款金额 ISNULL(E6.FNAME,'') as 'RefundName', --退款负责人 ISNULL(E6.FDate,'') as 'RefundDate', --退款日期 ISNULL(E6.FREALREFUNDAMOUNT,0) as 'RefundAmount', --退款金额 ISNULL(E1.FName,'') as 'ShipmentsName', --发货负责人 ISNULL(E1.FDate,'') as 'ShipmentsDate', --发货日期 (Select SUM(a1.FDELIQTY) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'ShipmentsNum', --发货数量 ISNULL(E1.FALLAMOUNT_LC,0) as 'ShipmentsAmount', --发货金额 ISNULL(E2.FNAME,'') as 'OutShipmentsName', --出库负责人 ISNULL(E2.FDate,'') as 'OutShipmentsDate', --出库日期 (Select SUM(FStockOutQty) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'OutShipmentsNum', --出库数量 ISNULL(E2.FALLAMOUNT_LC,0) as 'OutShipmentsAmount', --出库金额 ISNULL(E2.FSIGNQTY,0) as 'SignNum', --签收数量 CASE WHEN ISNULL(E2.FSIGNQTY,0) != 0 THEN '已签收' ELSE '未签收' END as 'IsSign', --是否签收 ISNULL(E3.FNAME,'') as 'ReturnName', --退货负责人 ISNULL(E3.FDate,'') as 'ReturnDate', --退货日期 ISNULL(E3.FREALQTY,0) as 'ReturnNum', --退货数量 ISNULL(E3.FALLAMOUNT_LC,0) as 'ReturnAmount', --退货金额 ISNULL(E4.FNAME,'') as 'BillingName', --开票负责人 ISNULL(E4.F_INVOICENUMBER,'') as 'BillingNumber', --发票号码 ISNULL(E4.FDate,'') as 'BillingDate', --开票日期 ISNULL(E4.FOPENQTY,0) as 'BillingNum', --开票数量 ISNULL(E4.FALLAMOUNT,0) as 'BillingAmount' --开票金额 --0 as 'NotCollectedAmount' --销售订单未收款金额 INTO #TEMPTABLE1 From T_SAL_ORDER A --销售订单 JOIN T_SAL_ORDERFIN AA --销售订单-财务 on A.FID = AA.FID LEFT JOIN T_ORG_ORGANIZATIONS_L AAA on AAA.FORGID = A.FSaleOrgId LEFT JOIN T_SEC_USER AAAA on AAAA.FUSERID = A.FCREATORID LEFT JOIN (SELECT A2.FDATAVALUE,A1.* FROM (Select q2.FNAME,q1.* From T_BD_CUSTOMER q1 JOIN T_BD_CUSTOMER_L q2 on q1.FCUSTID = q2.FCUSTID) A1 LEFT JOIN (Select A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID Where A.FID = '673af6092e2877' AND A.FDocumentStatus = 'C' AND A.FForbidStatus = 'A') A2 on A1.F_CREDITCLASSIFICATION = A2.FMASTERID) B --客户表 on A.FCustId = B.FCUSTID LEFT JOIN (Select q2.FNAME,q1.* From T_BAS_PREBDONE q1 JOIN T_BAS_PREBDONE_L q2 on q1.FID = q2.FID Where q2.FLocaleID = 2052 AND q1.FDocumentStatus = 'C' AND q1.FForbidStatus = 'A') C --工程项目(预置1)项目表 on C.FID = A.F_projectname LEFT JOIN (Select q2.FNAME,q1.* From V_BD_SALESMAN q1 LEFT JOIN V_BD_SALESMAN_L q2 on q1.fid = q2.fid Where q2.FLOCALEID = 2052 AND q1.FDocumentStatus = 'C' AND q1.FForbidStatus = 'A' AND q1.FForbiddenStatus = '0') D --销售员表 on A.FSalerId = D.fid LEFT JOIN V_SXJD_Table1 E1 --发货通知单表 on A.FID = E1.FSBILLID LEFT JOIN V_SXJD_Table2 E2 --销售出库单 on A.FID = E2.FID LEFT JOIN V_SXJD_Table3 E3 --退货订单表 on A.FID = E3.FID LEFT JOIN V_SXJD_Table4 E4 --应收单表 on A.FBILLNO = E4.FORDERNUMBER LEFT JOIN V_SXJD_Table6 E6 on A.F_CONTRACTNUMBER = E6.F_VRYF_TEXT_83G LEFT JOIN (Select 名称,区域,明细区域 From ERPTOHR.HYHRV3.dbo.v_erp_empinfo Where ISNULL(明细区域,'')!='' AND ISNULL(区域,'')!='' GROUP BY 名称,区域,明细区域) AW1 on D.FNAME = AW1.名称 --AND ISNULL(AW1.明细区域,'') != '' --视图 LEFT JOIN (Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型 on W8.FENTRYID = A.F_ORDERCATEGORY Where A.FDocumentStatus = 'C' --AND A.FBusinessType = 'NORMAL' AND A.FSALEORGID = 100302 AND W8.FNUMBER != 'Z' AND (ISNULL(@SalesOrg,'') = '' or AAA.FNAME = @SalesOrg) AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2) AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2))) AND ISNULL(AW1.区域,'') != '碳索智控' AND A.FMANUALCLOSE != '1' AND ISNULL(B.FNAME,'') NOT IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司') AND ISNULL(D.FNAME,'') != '兴诺总'; Select A.FDate as 'Date', AAAA.FNAME as 'OrderName', --制单人 A.FAPPROVEDATE as 'OrderDate',--下单日期 ISNULL(B.FNAME,'') as 'ClientName', --客户名称 A.F_contractnumber as 'ContractNumber', --纸质合同号 ISNULL(C.FNAME,'') as 'ProjectName', --项目名称 ISNULL(D.FNAME,'') as 'Salesman', --销售员 (Select SUM(a1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' From T_SAL_ORDERENTRY_F a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID Where a2.FMANUALROWCLOSE!='1' AND a1.FID = A.FID) as 'ContractPrice', --合同金额 (Select STRING_AGG(aa2.FNAME,',') as 'FNAME' From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2 on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO)) as 'CollectionName', --收款负责人 (Select STRING_AGG((CONVERT(nvarchar,aa1.FDATE,23)),',') as 'FDate' From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2 on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO)) as 'CollectionDate', --收款日期 ISNULL(A.F_AMOUNT,0) as 'CollectionAmount', --收款金额 ISNULL(E6.FNAME,'') as 'RefundName', --退款负责人 ISNULL(E6.FDate,'') as 'RefundDate', --退款日期 ISNULL(E6.FREALREFUNDAMOUNT,0) as 'RefundAmount', --退款金额 ISNULL(E1.FName,'') as 'ShipmentsName', --发货负责人 ISNULL(E1.FDate,'') as 'ShipmentsDate', --发货日期 (Select SUM(a1.FDELIQTY) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'ShipmentsNum', --发货数量 ISNULL(E1.FALLAMOUNT_LC,0) as 'ShipmentsAmount', --发货金额 ISNULL(E2.FNAME,'') as 'OutShipmentsName', --出库负责人 ISNULL(E2.FDate,'') as 'OutShipmentsDate', --出库日期 (Select SUM(FStockOutQty) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'OutShipmentsNum', --出库数量 ISNULL(E2.FALLAMOUNT_LC,0) as 'OutShipmentsAmount', --出库金额 ISNULL(E2.FSIGNQTY,0) as 'SignNum', --签收数量 CASE WHEN ISNULL(E2.FSIGNQTY,0) != 0 THEN '已签收' ELSE '未签收' END as 'IsSign', --是否签收 ISNULL(E3.FNAME,'') as 'ReturnName', --退货负责人 ISNULL(E3.FDate,'') as 'ReturnDate', --退货日期 ISNULL(E3.FREALQTY,0) as 'ReturnNum', --退货数量 ISNULL(E3.FALLAMOUNT_LC,0) as 'ReturnAmount', --退货金额 ISNULL(E4.FNAME,'') as 'BillingName', --开票负责人 ISNULL(E4.F_INVOICENUMBER,'') as 'BillingNumber', --发票号码 ISNULL(E4.FDate,'') as 'BillingDate', --开票日期 ISNULL(E4.FOPENQTY,0) as 'BillingNum', --开票数量 ISNULL(E4.FALLAMOUNT,0) as 'BillingAmount' --开票金额 --0 as 'NotCollectedAmount' --销售订单未收款金额 INTO #TEMPTABLE2 From T_SAL_ORDER A --销售订单 JOIN T_SAL_ORDERFIN AA --销售订单-财务 on A.FID = AA.FID LEFT JOIN T_ORG_ORGANIZATIONS_L AAA on AAA.FORGID = A.FSaleOrgId LEFT JOIN T_SEC_USER AAAA on AAAA.FUSERID = A.FCREATORID LEFT JOIN (SELECT A2.FDATAVALUE,A1.* FROM (Select q2.FNAME,q1.* From T_BD_CUSTOMER q1 JOIN T_BD_CUSTOMER_L q2 on q1.FCUSTID = q2.FCUSTID) A1 LEFT JOIN (Select A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID Where A.FID = '673af6092e2877' AND A.FDocumentStatus = 'C' AND A.FForbidStatus = 'A') A2 on A1.F_CREDITCLASSIFICATION = A2.FMASTERID) B --客户表 on A.FCustId = B.FCUSTID LEFT JOIN (Select q2.FNAME,q1.* From T_BAS_PREBDONE q1 JOIN T_BAS_PREBDONE_L q2 on q1.FID = q2.FID Where q2.FLocaleID = 2052 AND q1.FDocumentStatus = 'C' AND q1.FForbidStatus = 'A') C --工程项目(预置1)项目表 on C.FID = A.F_projectname LEFT JOIN (Select q2.FNAME,q1.* From V_BD_SALESMAN q1 LEFT JOIN V_BD_SALESMAN_L q2 on q1.fid = q2.fid Where q2.FLOCALEID = 2052 AND q1.FDocumentStatus = 'C' AND q1.FForbidStatus = 'A' AND q1.FForbiddenStatus = '0') D --销售员表 on A.FSalerId = D.fid LEFT JOIN V_SXJD_Table1 E1 --发货通知单表 on A.FID = E1.FSBILLID LEFT JOIN V_SXJD_Table2 E2 --销售出库单 on A.FID = E2.FID LEFT JOIN V_SXJD_Table3 E3 --退货订单表 on A.FID = E3.FID LEFT JOIN V_SXJD_Table4 E4 --应收单表 on A.FBILLNO = E4.FORDERNUMBER LEFT JOIN V_SXJD_Table6 E6 on A.F_CONTRACTNUMBER = E6.F_VRYF_TEXT_83G LEFT JOIN (Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型 on W8.FENTRYID = A.F_ORDERCATEGORY Where A.FDocumentStatus = 'C' --AND A.FBusinessType = 'NORMAL' AND A.FSALEORGID != 100302 AND W8.FNUMBER != 'Z' AND (ISNULL(@SalesOrg,'') = '' or AAA.FNAME = @SalesOrg) AND A.FMANUALCLOSE != '1' AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2) AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2))); Select * INTO #TEMPTABLE3 From #TEMPTABLE1 Union ALL (Select * From #TEMPTABLE2) Select *,(ContractPrice-CollectionAmount-RefundAmount) as'NotCollectedAmount' From #TEMPTABLE3 Where --(ISNULL(@StartDate,'') = '' or DATE >= @StartDate) AND (ISNULL(@EndDate,'') = '' or DATE <= @EndDate) AND (ISNULL(@ContractNumber,'') = '' or ContractNumber like '%'+@ContractNumber+'%'); Drop Table #TEMPTABLE1 Drop Table #TEMPTABLE2 Drop Table #TEMPTABLE3