[步骤]
CODE:N15440523Error:15_156_1_-2146232060
SQL:
SELECT CASE d.IsStockOrderWithPackage
WHEN 1 THEN
'备库订单'
ELSE
'客户订单'
END AS '订单类型',
a.PrintBatchNo AS '批次号',
f.WareHouseName AS '发货仓库',
g.AreaName AS '拣货区域',
c.SKU AS 'SKU',
c.PositionCode AS '库位',
CASE
WHEN c.PositionNum > 0 THEN
c.PositionNum
ELSE
c.LockNum + c.StockReduceNum
END AS '需求数量',
c.PickingNum AS '已拣数量',
CASE e.IsCreateAbnormalTask
WHEN 1 THEN
'是'
WHEN 0 THEN
'否'
ELSE
NULL
END AS '是否已生成异常拣货',
c.PickingTime AS '拣货时间',
e.Remark AS '备注'
FROM RB_Package_Picking_ChildWarehouseArea (NOLOCK) a
INNER JOIN
(
SELECT DISTINCT
PickingGUID,
PackageID,
aa.CustomerID FROM RB_Package_Picking_Package_ChildWareHouseArea (NOLOCK) aa ) b ON a.PickingGUID = b.PickingGUID AND a.CustomerID = b.CustomerID INNER JOIN RB_Package_OperateStock (NOLOCK) c ON b.PackageID = c.PackageID AND b.CustomerID = c.CustomerID AND c.IsDelete = 0 AND c.AreaTaskNumber IS NULL INNER JOIN RB_Procurement_Order_Package (NOLOCK) d ON c.PackageID = d.ID AND c.CustomerID = d.CustomerID INNER JOIN RB_Package_Picking_ChildWarehouseArea_Detail (NOLOCK) e ON a.PickingGUID = e.PickingGUID AND e.CustomerID = a.CustomerID AND c.WarehouseAreaID = e.WareHouseAreaID AND c.SKU = e.SKU INNER JOIN dbo.RB_WareHouse (NOLOCK) f ON a.WareHouseID = f.ID AND a.CustomerID = f.CustomerID INNER JOIN RB_WareHouseArea (NOLOCK) g ON a.WarehouseAreaID = g.ID AND a.CustomerID = g.CustomerID INNER JOIN RB_Package_Picking (NOLOCK) h ON a.MainPickingGUID = h.PickingGUID AND a.CustomerID = h.CustomerID WHERE a.CustomerID = @CustomerID AND a.WareHouseID IN ( SELECT CONVERT(INT,item) FROM dbo.CharSplitForIn(@WareHouseID,',')) AND ISNULL(a.IsError, 0) = 0 AND h.AddTime >= @StartTime AND h.AddTime <= @EndTime --AND a.PrintBatchNo = @PrintBatchNo --AND c.SKU = @SKU UNION SELECT CASE d.IsStockOrderWithPackage WHEN 1 THEN '备库订单' ELSE '客户订单' END AS '订单类型', a.PrintBatchNo AS '批次号', f.WareHouseName AS '发货仓库', g.AreaName AS '拣货区域', c.SKU AS 'SKU', c.PositionCode AS '库位', CASE WHEN c.PositionNum > 0 THEN c.PositionNum ELSE c.LockNum + c.StockReduceNum END AS '需求数量', c.PickingNum AS '已拣数量', CASE e.IsCreateAbnormalTask WHEN 1 THEN '是' WHEN 0 THEN '否' ELSE NULL END AS '是否已生成异常拣货', c.PickingTime AS '拣货时间', e.Remark AS '备注' FROM RB_Package_Picking_ChildWarehouseArea (NOLOCK) a INNER JOIN RB_Package_OperateStock (NOLOCK) c ON a.CustomerID = c.CustomerID AND c.IsDelete = 0 AND c.AreaTaskNumber = a.AreaTaskNumber INNER JOIN RB_Procurement_Order_Package (NOLOCK) d ON c.PackageID = d.ID AND c.CustomerID = d.CustomerID INNER JOIN RB_Package_Picking_ChildWarehouseArea_Detail (NOLOCK) e ON a.PickingGUID = e.PickingGUID AND e.CustomerID = a.CustomerID AND c.WarehouseAreaID = e.WareHouseAreaID AND c.SKU = e.SKU INNER JOIN dbo.RB_WareHouse (NOLOCK) f ON a.WareHouseID = f.ID AND a.CustomerID = f.CustomerID INNER JOIN RB_WareHouseArea (NOLOCK) g ON a.WarehouseAreaID = g.ID AND a.CustomerID = g.CustomerID INNER JOIN RB_Package_Picking (NOLOCK) h ON a.MainPickingGUID = h.PickingGUID AND a.CustomerID = h.CustomerID WHERE a.CustomerID = @CustomerID AND a.WareHouseID IN ( SELECT CONVERT(INT,item) FROM dbo.CharSplitForIn(@WareHouseID,',')) AND ISNULL(a.IsAbAbnormalWareHouseTask, 0) = 0 AND h.AddTime >= @StartTime AND h.AddTime <= @EndTime --AND a.PrintBatchNo = @PrintBatchNo --AND c.SKU = @SKU UNION -- 异常数据 SELECT CASE c.IsStockOrderWithPackage WHEN 1 THEN '备库订单' ELSE '客户订单' END AS '订单类型', a.PrintBatchNo AS '批次号', d.WareHouseName AS '发货仓库', e.AreaName AS '拣货区域', a.SKU AS 'SKU', a.PositionCode AS '库位', CASE WHEN a.PositionNum > 0 THEN a.PositionNum ELSE a.LockNum + a.StockReduceNum END AS '需求数量', a.PickingNum AS '已拣数量', CASE b.IsCreateAbnormalTask WHEN 1 THEN '是' WHEN 0 THEN '否' ELSE NULL END AS '是否已生成异常拣货', a.PickingTime AS '拣货时间', b.Remark AS '备注' FROM RB_Package_Picking_AbnormalLock_Detail (NOLOCK) a INNER JOIN dbo.RB_Package_Picking_ChildWarehouseArea_Detail (NOLOCK) b ON a.CustomerID = b.CustomerID AND a.PickingGUID = b.PickingGUID AND a.SKU = b.SKU INNER JOIN RB_Procurement_Order_Package (NOLOCK) c ON c.ID = a.PackageID AND c.CustomerID = a.CustomerID INNER JOIN RB_WareHouse (NOLOCK) d ON d.ID = a.WareHouseID AND d.CustomerID = a.CustomerID INNER JOIN dbo.RB_WareHouseArea (NOLOCK) e ON e.ID = a.WarehouseAreaID AND e.CustomerID = a.CustomerID INNER JOIN RB_Package_Picking (NOLOCK) f ON a.CustomerID = f.CustomerID AND a.MainPickingGUID = f.PickingGUID WHERE a.CustomerID = @CustomerID --客户id 158 是1 AND a.WareHouseID IN ( SELECT CONVERT(INT,item) FROM dbo.CharSplitForIn(@WareHouseID,',')) AND a.IsDelete = 0 --必须要 AND a.WareHouseID = SELECT CONVERT(INT,item) FROM dbo.CharSplitForIn(@WareHouseID,',') --仓库id 5312 东莞1号仓库 333:义乌1号仓库 AND a.IsAbnormal = 1 --必须要 AND f.AddTime >= @StartTime AND f.AddTime <= @EndTime --AND a.SKU = @SKU --AND a.PrintBatchNo = @PrintBatchNo; PARAMS:@StartTime = 2023-02-23 ,@EndTime = 2023-02-23 23:59:59 ,@WareHouseID = 5312 ,@CustomerId = 1 , MESSAGE:Incorrect syntax near the keyword 'SELECT'. Incorrect syntax near the keyword 'AND'. 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.GetPageDataForCustomReportToSqlDataReader(String firstFileFullPath, RB_CustomReportTask customReportTask, String[] noPermsissionfields, Dictionary`2 paramList, List`1 exportFields, String orderBy, Int32 timeOut) 在 Biz.Irobotbox.ReportCentre.CustomReportService.ExportCSVBySteam(RB_CustomReportTask customReportTask, String[] noPermsissionfields, Dictionary`2 paramValues, List`1 exportFields, String orderField, 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()
[结果]
[期望]

数据工程部的同事添加的SQL
