报错 业务体系列无效 原始代码是这样的
CREATE TABLE [#TEMP_Department] (Department nvarchar(20))
INSERT INTO [#TEMP_Department]
EXEC [ZY_P_Get_SAP_Account_to_TempDept]
IF NOT EXISTS(SELECT * FROM [#TEMP_Department])
BEGIN
SELECT '无法获取SAP账号ID,请重启电脑后重试'
RETURN
END
---------------
DECLARE @date1 DateTime
DECLARE @date2 DateTime
DECLARE @SlpName VARCHAR(64)
DECLARE @NumAtCard varchar(20)
DECLARE @SupplCode varchar(20)
DECLARE @CardCode varchar(20)
DECLARE @CardName varchar(200)
DECLARE @Department VARCHAR(64)
DECLARE @U_USER VARCHAR(64)
SELECT @SlpName=TX0.SlpName FROM OSLP TX0 WHERE TX0.SlpName = '[%3]'
SELECT @CardCode=TX1.CardCode FROM ODLN TX1 WHERE TX1.CardCode = '[%4]'
SELECT @CardName=TX1.CardName FROM ODLN TX1 WHERE TX1.CardName = '[%5]'
SELECT @Department=TX1.U_Department FROM ODLN TX1 WHERE TX1.U_Department = '[%6]'
SELECT @NumAtCard=TX1.NumAtCard FROM ODLN TX1 WHERE TX1.NumAtCard = '[%10]'
SELECT @SupplCode=TX1.SupplCode FROM ODLN TX1 WHERE TX1.SupplCode = '[%11]'
SELECT @U_USER=TX1.U_USER FROM ODLN TX1 WHERE TX1.U_USER = '[%12]'
SET @SlpName = '[%3]'
SET @CardCode = '[%4]'
SET @CardName = '[%5]'
SET @Department = '[%6]'
SET @numatcard = '[%10]'
SET @SupplCode = '[%11]'
SET @U_USER = '[%12]'
SELECT T.类型 as '单据类型',T.DocEntry as '单据流水号', T.DN日期 as '销货日期', T.合同号 as '合同号', T.DN补充代码 as 'DN补充代码',T.制单人 as '制单人',T.销售员 as '销售员'
,T.部门 as '部门',T.综合部门 as '综合部门', T.客户编码 as '客户编码', T.客户名称 as '客户名称',T.单据币别 as '单据币别', T.DN金额 as '销货单金额', T.IN金额 as '应收发票金额'
,T.已收款金额 AS '已收款金额',T.未收款金额 AS '未收款金额', isnull(V.U_ATCC_user,D.U_ATCC_user) as '客户联系人'
,isnull(V.U_PerPayCon,D.U_PerPayCon) as '客户付款条件', isnull(V.U_consignee,D.U_consignee) '收货人',T.客户类型 as '客户类型',T.IN补充代码 as 'IN补充代码'
, isnull(V.U_CusOdrCode,D.U_CusOdrCode ) as '体现在发票上的备注', '' as '联系人分组', isnull(X.XM_YN,'N') as '项目合同', DS.U_FHtype as '项目类型',
DATEDIFF(day,GETDATE() ,T.DN日期 ) '超期天数'
,CASE
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<0 AND DATEDIFF(day,GETDATE() ,T.DN日期 )>=-30 THEN '1个月'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-30 AND DATEDIFF(day,GETDATE() ,T.DN日期 )>=-60 THEN '2个月'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-60 AND DATEDIFF(day,GETDATE(),T.DN日期 )>=-90 THEN '3个月'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-90 AND DATEDIFF(day,GETDATE() ,T.DN日期 )>=-180 THEN '6个月'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-180 AND DATEDIFF(day,GETDATE() ,T.DN日期 )>=-365 THEN '1年'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-365 AND DATEDIFF(day,GETDATE() ,T.DN日期 )>=-545 THEN '1年半'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-545 AND DATEDIFF(day,GETDATE() ,T.DN日期 )>=-730 THEN '2年'
WHEN DATEDIFF(day,GETDATE() ,T.DN日期 )<-730 then '2年以上'
ELSE '未超期'
END AS '超期类型'
, isnull(V.Comments ,D.Comments) as '备注'
,F.已开票金额 as '已开票总额'
,F2.SQ开票金额 as 'SQ开票金额',F2.SQ发票号 'SQ发票号'
,F2.OR开票金额 as 'OR开票金额',F2.OR发票号 'OR发票号'
,isnull(V.U_ApplyInvoiceAmt,0) as 'IN开票金额', F1.发票号 'IN发票号'
,F.发票日期 as '发票日期'
--,Case When isnull(F.开票总金额,0) >0 Then 'Y' When isnull(Y.IN冲预留款金额sum,0) >0 Then 'Y' Else 'N' End '是否已开票'
,CASE WHEN F.未开票金额 <=0 THEN 'Y' WHEN V.U_BillType ='Y' THEN 'Y' ELSE 'N' END '已开票YN'
,Y.IN_YK对账金额 as '冲预留款发票金额', Y.发票号 as '关联预留款YK号',Y.发票号 AS 'YK关联发票号'
,CASE WHEN T.业务体系 = '平台体系' THEN '平台业务'
WHEN T.业务体系 NOT IN ('平台体系','经销体系') THEN '其它'
WHEN T.业务体系 IS NULL THEN '其它'
WHEN T.综合部门 ='工业部' THEN '工业业务'
WHEN T.综合部门 ='生命科学部' THEN '科研业务'
WHEN T.综合部门 ='基础科研部' THEN '科研业务'
WHEN T.综合部门 ='分销部' THEN '分销业务'
WHEN T.客户类型 ='工业客户' THEN '工业业务'
WHEN T.客户类型 ='经销商客户' THEN '分销业务'
ELSE '科研业务'
END '业务类别' ,T.业务体系
,'|' '|' ,isnull(V.DocCur,D.DocCur) as '币别',isnull(V.DocRate,D.DocRate) '汇率',isnull(V.DocTotalFC,D.DocTotalFC) '原币单据金额'
, T.未收款金额 / isnull(V.DocTotal,D.DocTotal) * isnull(V.DocTotalFC,D.DocTotalFC) AS '原币未收款金额(估)'
FROM [ZY_TB_Receivable_Balance_Base] T
INNER JOIN [#TEMP_Department] X0 ON X0.Department =T.综合部门 ---卡数据
LEFT JOIN OINV V ON V.DocEntry =T.DocEntry AND T.ObjType ='IN'
LEFT JOIN ODLN D ON D.DocEntry =T.DocEntry AND T.ObjType ='DN'
LEFT JOIN [ZY_VIEW_XM] X ON X.ConCode =T.合同号
LEFT JOIN [@AVA_DS_OCTR] DS ON DS.U_ConCode =T.合同号
LEFT JOIN [ZY_TB_ConCode_FP_Status] F ON F.合同号 = T.合同号 ---- 按合同号记录的发票信息
LEFT JOIN [ZY_TB_ConCode_Suppl_FP] F1 ON F1.补充代码 =V.SupplCode ---- 按补充代码记录的发票信息
LEFT JOIN --- 按 SQ OR 开票的信息汇总
(---SQ开票信息与OR开票信息合并,保证按合同号一行数据
SELECT Q.合同号 ,isnull(Q.SQ开票金额,0) as 'SQ开票金额' ,Q.SQ发票号 , isnull(R.OR开票金额,0) as 'OR开票金额' ,R.OR发票号
FROM
(--- SQ的,不会有重复行
SELECT T.合同号 ,isnull(Q.U_ApplyInvoiceAmt,0) - isnull(Q.U_ReturnInoiceAmt,0) AS 'SQ开票金额',T.发票号 'SQ发票号'
FROM OQUT Q
INNER JOIN (SELECT distinct 合同号 FROM [ZY_TB_Receivable_Balance_Base] )X ON X.合同号=Q.NumAtCard ---有应收的合同号
INNER JOIN [ZY_TB_ConCode_Suppl_FP] T ON T.补充代码 =Q.SupplCode
WHERE LEFT(补充代码,2) ='SQ'
)Q
LEFT JOIN
( --OR的,要按合同号先汇总,再串接发票号
SELECT DISTINCT R.NumAtCard ,R.OR开票金额 ,(SELECT DISTINCT A.发票号+'' FROM [ZY_TB_ConCode_Suppl_FP] A WHERE A.合同号 =T.合同号 FOR XML PATH('') ) AS 'OR发票号'
FROM(--- OR单的,开票金额进行汇总
SELECT R.NumAtCard,SUM(isnull(R.U_ApplyInvoiceAmt,0) - isnull(R.U_ReturnInoiceAmt,0)) AS 'OR开票金额'
FROM ORDR R
INNER JOIN (SELECT distinct 合同号 FROM [ZY_TB_Receivable_Balance_Base] ) X ON X.合同号=R.NumAtCard ---有应收的合同号
GROUP BY R.NumAtCard
) R
LEFT JOIN [ZY_TB_ConCode_Suppl_FP] T ON T.合同号 =R.NumAtCard
) R ON R.NumAtCard =Q.合同号
) F2 ON F2.合同号 =T.合同号
LEFT JOIN [ZY_TB_ConCode_FP_IN_YKFP] Y ON Y.IN_DocEntry =T.DocEntry AND T.ObjType ='IN'
WHERE
--T.合同号 ='2024SHVS02088'
(T.客户编码=@CardCode or @CardCode ='')
and (T.客户名称 =@cardname or @cardname ='')
and (T.销售员 =@SlpName or @SlpName ='')
and (T.合同号 =@NumAtCard or @NumAtCard ='')
and (T.DN补充代码=@SupplCode or @SupplCode ='')
and (T.综合部门 =@department or @department ='')
and (T.制单人=@U_USER or @U_USER ='')
DROP TABLE #TEMP_Department