重现步骤

[步骤]



[15:25:47]  -------------------------------------------------------------
CODE:N15254765
Error:15_156_1_-2146232060
SQL:-- declare @StartTime datetime= '2022-09-01' ,@EndTime datetime= '2022-09-30 23:59:59' ,@CustomerId int= 1 
SELECT tt1.SKU
,tt1.ActualProductPrice '对比下单价'
,aad.UserName '采购员'
,dn.DepartmentName '采购组'
,tt2.AddTime '对比下单时间'
,rank()over(ORDER BY tt2.AddTime) 'rank'
INTO #tt
FROM RB_Procurement_Detail_SingleList_Detail(NOLOCK) AS tt1
LEFT JOIN dbo.RB_Procurement_Detail_SingleList ( NOLOCK ) tt2 ON tt1.CustomerID = tt2.CustomerID AND tt1.ListID = tt2.ID 
LEFT JOIN dbo.RB_Admin ( NOLOCK ) aad ON tt2.BuyerID=aad.ID
LEFT JOIN RB_Department(NOLOCK) AS dn ON aad.DepartmentID = dn.ID
WHERE aad.DepartmentID = SELECT item FROM dbo.CharSplitForIn(@DepartmentID,',') 
;

SELECT t2.AddTime '下单时间'
,t2.Single_NO AS '下单号'
,b.SKU 
,t1.ActualProductPrice '下单价'
,t1.ActualBuyNum AS '下单数量'
,t1.ActualProductPrice*t1.ActualBuyNum '产品总额'
,t2.PayTotalAmount '下单总额' -- (含运费)
,t2.ShipAmount '下单运费'
,CASE WHEN ISNULL(yf.下单号产品总数,0) = 0 THEN 0
ELSE ROUND(t2.ShipAmount/yf.下单号产品总数*t1.ActualBuyNum,2)
END 'SKU均摊运费'
,ad.UserName '采购员'
,dn.DepartmentName '采购组'
,c2.PaymentName '账期类型'
INTO #main
FROM RB_Procurement_Detail_SingleList(NOLOCK) AS t2 -- 采购下单产品表
LEFT JOIN  RB_Procurement_Detail(NOLOCK) AS b ON t2.CustomerID = b.CustomerID AND b.P_Code = t2.P_Code 
LEFT JOIN RB_Procurement_List(NOLOCK) AS b2 ON b.CustomerID = b2.CustomerID AND b.P_Code = b2.P_Code
LEFT JOIN dbo.RB_Product_Supplier(NOLOCK) AS c1 ON b.CustomerID = c1.CustomerID AND b2.SupplierID = c1.ID
LEFT JOIN RB_Product_Supplier_PaymentDay(NOLOCK) AS c2 ON c1.PaymentDayNew = c2.ID
LEFT JOIN RB_Procurement_Detail_SingleList_Detail(NOLOCK) AS t1 ON t2.CustomerID = t1.CustomerID AND t1.SKU = b.SKU AND t1.ListID = t2.ID -- 采购下单产品明细表
LEFT JOIN dbo.RB_Admin ( NOLOCK ) ad ON t2.BuyerID=ad.ID
LEFT JOIN RB_Department(NOLOCK) AS dn ON ad.DepartmentID = dn.ID
LEFT JOIN(SELECT yf1.Single_NO,SUM(yf3.ActualBuyNum) '下单号产品总数' FROM RB_Procurement_Detail_SingleList(NOLOCK) yf1
LEFT JOIN  RB_Procurement_Detail(NOLOCK) yf2 ON yf1.CustomerID = yf2.CustomerID AND yf2.P_Code = yf1.P_Code
LEFT JOIN RB_Procurement_List(NOLOCK) AS bb2 ON yf2.CustomerID = bb2.CustomerID AND yf2.P_Code = bb2.P_Code
LEFT JOIN RB_Procurement_Detail_SingleList_Detail(NOLOCK) AS yf3 ON yf1.CustomerID = yf3.CustomerID AND yf3.SKU = yf2.SKU AND yf3.ListID = yf1.ID
WHERE yf1.CustomerID = 1 AND ISNULL(bb2.IsSample,0) != 1 AND bb2.FinishStatus = 1
GROUP BY yf1.Single_NO) yf
ON yf.Single_NO = t2.Single_NO

WHERE t1.CustomerID = 1 
AND ISNULL(b2.IsSample,0) != 1 -- 是否样品单
AND b2.FinishStatus = 1 --采购单完结状态
AND t2.CustomerId = @CustomerId
AND t2.AddTime >= @StartTime 
AND t2.AddTime <= @EndTime 
AND ad.DepartmentID = SELECT item FROM dbo.CharSplitForIn(@DepartmentID,',')  
;

SELECT b1.下单时间
,b1.下单号
,b1.SKU '下单SKU'
,b1.下单价
,b1.下单数量
,b1.产品总额
,b1.下单总额
,b1.下单运费
,b1.SKU均摊运费
,b1.采购员
,b1.采购组
,b1.去年最后一次下单价  
,b2.对比下单价 '今年第一次下单价'
,b1.账期类型
--,b1.去年最后一次下单时间 
--,b2.对比下单时间 今年第一次下单时间
,((CASE WHEN b1.去年最后一次下单价 IS NULL THEN b2.对比下单价 ELSE b1.去年最后一次下单价 END)-b1.下单价) * b1.下单数量 '降价金额'
INTO #mx
FROM (
SELECT a1.*,MIN(t4.rank) 'rank2'
FROM (
SELECT c1.*
,c2.对比下单时间 去年最后一次下单时间
,c2.对比下单价 去年最后一次下单价 
FROM(
SELECT main.*,o1.rank 
FROM #main main
LEFT JOIN(
SELECT m.*,MAX(t3.rank) 'rank'
FROM #main  m
LEFT JOIN #tt t3 ON m.SKU = t3.SKU 
WHERE YEAR(t3.对比下单时间) = YEAR(m.下单时间) - 1
GROUP BY m.下单时间
,m.下单号
,m.SKU
,m.下单价
,m.下单数量
,m.产品总额
,m.下单总额
,m.下单运费
,m.SKU均摊运费
,m.采购员
,m.采购组
,m.账期类型
) o1 ON o1.SKU = main.SKU AND o1.下单号 = main.下单号 AND o1.采购员 = main.采购员 AND o1.采购组 = main.采购组
)c1
LEFT JOIN #tt c2 ON c1.SKU = c2.SKU AND c2.rank = c1.rank
) a1 
LEFT JOIN #tt t4 ON a1.SKU = t4.SKU 
WHERE YEAR(t4.对比下单时间) = YEAR(a1.下单时间)
GROUP BY a1.下单时间
,a1.下单号
,a1.SKU
,a1.下单价
,a1.下单数量
,a1.产品总额
,a1.下单总额
,a1.下单运费
,a1.SKU均摊运费
,a1.采购员
,a1.采购组
,a1.账期类型
,a1.rank
,a1.去年最后一次下单时间 
,a1.去年最后一次下单价  
) b1
LEFT JOIN #tt b2 ON b1.SKU = b2.SKU AND b2.rank = b1.rank2
;



SELECT a1.采购员
,a2.采购组
,a1.降价总额
,a1.产品总额
,a1.降价比率
,ROUND(a2.下单总运费/a1.下单总数量,2) '产品数量均摊运费'
,a2.账期下单总额
,a2.下单总额
,a2.账期下单比率
from(
SELECT 采购员
,采购组
,SUM(降价金额) '降价总额'
,SUM(产品总额) '产品总额'
,CONVERT(varchar(50), ROUND((
CAST(SUM(降价金额)AS FLOAT)/CAST(SUM(产品总额) AS FLOAT)
)*100 ,2)) + '%' '降价比率'
, SUM(下单数量) '下单总数量'
FROM #mx
GROUP BY 采购员,采购组
) a1 
LEFT JOIN(
SELECT 采购员
,采购组
,SUM(CASE WHEN 账期类型 = '现结'THEN 0 ELSE 下单总额 end) '账期下单总额'
,SUM(下单总额) '下单总额'
,CONVERT(varchar(50), ROUND((
CAST(SUM(CASE WHEN 账期类型 != '现结'THEN 下单总额 end) AS FLOAT)/CAST(SUM(下单总额) AS FLOAT)
)*100 ,2)) + '%' '账期下单比率'
,SUM(下单运费) '下单总运费' 
FROM(
SELECT 采购员,采购组,下单号,下单总额,账期类型,下单运费 
FROM #mx
GROUP BY 采购员,采购组,下单号,下单总额,账期类型,下单运费
)a
GROUP BY 采购员,采购组
)a2
ON a1.采购员=a2.采购员 AND a2.采购组 = a1.采购组
;


SELECT * FROM #mx;


PARAMS:@StartTime = 2020-01-01 ,@EndTime = 2020-12-31 23:59:59 ,@DepartmentID = 586 ,@CustomerId = 1 ,
MESSAGE:Incorrect syntax near the keyword 'SELECT'.
Incorrect syntax near the keyword 'SELECT'.
TRACE:   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   在 RB.DAL.DBOperator.ExecuteReader(String SQLString, SqlParameter[] cmdParms, Boolean IsWriteDB, Int32 Timeout)   在 RB.DAL.DBOperator.toCommonTipException(SqlException ex, String sql, SqlParameter[] cmdParms)
   在 RB.DAL.DBOperator.ExecuteReader(String SQLString, SqlParameter[] cmdParms, Boolean IsWriteDB, Int32 Timeout)
   在 Biz.Irobotbox.ReportCentre.CustomReportService.ExportXlsxByDr(String firstFileFullPath, RB_CustomReportTask customReportTask, Dictionary`2 paramList, List`1 fields, Int32 timeOut)
   在 Biz.Irobotbox.ReportCentre.CustomReportService.ExportXlsxBySteam(RB_CustomReportTask customReportTask, Dictionary`2 paramValues, List`1 fieldsList, Int32 timeOut)
   在 Biz.Irobotbox.ReportCentre.CustomReportService.ExecuteCustomReportTask(List`1 customReportList)
   在 System.Threading.Tasks.Task.Execute()
   在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   在 System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
   在 System.Threading.Tasks.Schedulers.LimitedConcurrencyLevelTaskScheduler.<NotifyThreadPoolOfPendingWork>b__6_0(Object _)
   在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   在 System.Threading.ThreadPoolWorkQueue.Dispatch()


[结果]


[期望]


历史记录  
  1. 2022-11-11 15:46:57, 由 袁慧斌 创建。
  2. 2022-11-11 17:20:31, 由 袁慧斌 编辑。
    修改了 优先级 ,旧值为 "3",新值为 "1"。
    修改了 影响环境,旧值为 "577,",新值为 "577"。
  3. 2022-11-14 10:10:06, 由 胡晓龙 指派给 许瑞丰。
    修改了 指派给,旧值为 "huxiaolong",新值为 "xuruifeng"。
  4. 2022-11-14 10:13:08, 由 许瑞丰 指派给 何建宝。
    修改了 指派给,旧值为 "xuruifeng",新值为 "hejianbao"。
  5. 2022-11-14 11:19:09, 由 何建宝 指派给 胡晓龙。
    修改了 指派给,旧值为 "hejianbao",新值为 "huxiaolong"。

    是数据小组自己添加的报表,让他们看下

  6. 2022-11-14 14:42:19, 由 胡晓龙 添加备注。

  7. 2022-11-15 09:19:06, 由 胡晓龙 添加备注。

  8. 2022-11-15 09:19:45, 由 胡晓龙 解决,方案为 配置问题 。
    修改了 解决方案,旧值为 "",新值为 "deploy"。
    修改了 解决日期,旧值为 "",新值为 "2022-11-15 09:19:20"。
    修改了 指派给 ,旧值为 "huxiaolong",新值为 "yuanhuibin"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "huxiaolong"。
  9. 2022-11-16 15:32:17, 由 袁慧斌 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "yuanhuibin",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "yuanhuibin"。
    修改了 关闭日期,旧值为 "",新值为 "2022-11-16 15:32:17"。
  10. 2023-11-17 09:34:38, 由 刘超 编辑。
    修改了 所属模块,旧值为 "1748",新值为 "1850"。
  11. 2023-11-17 09:53:55, 由 刘超 编辑。
    修改了 所属模块,旧值为 "1850",新值为 "1863"。
所属项目 技术中心-需求池
所属模块 系统运维   性能优化
所属计划
所属迭代
Bug类型
严重程度 提示
优先级 P0
Bug状态 已关闭
业务部门
影响功能
开发责任人
测试责任人
解决时效 0
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2022-11-16 15:32:17
截止日期 0000-00-00
上线时间
上线时效
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 袁慧斌 于 2022-11-11 15:46:57
影响环境 577
由谁解决 胡晓龙 于 2022-11-15 09:19:20
解决版本
解决方案 配置问题
由谁关闭 袁慧斌 于 2022-11-16 15:32:17
最后修改 刘超 于 2023-11-17 09:53:48
相关Bug