重现步骤

[步骤]

exec sp_executesql N'            selECT             t.CustomerID            ,t.OrderNum,            CAST(t.dt AS DATETIME) dt,            t.OrderSourceType, t.DepartmentName,            t.SalesUSD,            t.SinglePrice,            t.TotalActivityMinusPrice            from            (            SELECT oi.CustomerID,                   SUM ( CASE WHEN TotalPrice = 0 AND oi.DownLoadUpdateTime= ''2000-01-01'' THEN 0 ELSE 1 END ) AS OrderNum,                   CONVERT(VARCHAR(100), oi.AddTime, 23) dt,                os.OrderSourceType OrderSourceType,    DeptLogic.DepartmentName AS DepartmentName,                   (SUM ( TotalPrice ) / (CASE WHEN SUM(CASE WHEN TotalPrice = 0 THEN 0 ELSE 1 END) = 0 THEN                                    1                                ELSE                                    SUM(CASE WHEN TotalPrice = 0 THEN 0 ELSE 1 END)                    END)                    *  SUM ( CASE WHEN TotalPrice = 0 AND oi.DownLoadUpdateTime= ''2000-01-01'' THEN 0 ELSE 1 END ))AS SalesUSD,                   SUM ( TotalPrice ) / (CASE WHEN SUM(CASE WHEN TotalPrice = 0 THEN 0 ELSE 1 END) = 0 THEN                                    1                                ELSE                                    SUM(CASE WHEN TotalPrice = 0 THEN 0 ELSE 1 END)                    END) AS SinglePrice,                   SUM( oi.TotalActivityMinusPrice ) as TotalActivityMinusPrice            FROM             (             SELECT oi.CustomerID,             oi.OrderSourceID,             oi.OrderCode,             oi.TotalPrice / (CASE WHEN ExchangeUSD = 0 THEN             1             ELSE             ExchangeUSD             END) as TotalPrice,             oi.DownLoadUpdateTime,             oi.ExchangeUSD,             oi.AddTime,             (CASE             WHEN oi.TotalPrice = 0 THEN             0             ELSE             SUM(ol.ActivityMinusPrice/ (CASE             WHEN ExchangeUSD = 0 THEN             1             ELSE             ExchangeUSD             END)             )             END) as TotalActivityMinusPrice,MAX(ol.BusinessAdminID) SaleAdminID             FROM dbo.RB_OrderInfo oi WITH (NOLOCK)             LEFT JOIN RB_OrderList ol WITH (NOLOCK)             ON oi.CustomerID = ol.CustomerID and oi.OrderCode = ol.OrderCode             WHERE oi.CustomerID = 1 AND oi.AddTime >= @DtStart                    AND oi.AddTime <= @DtEnd                 AND oi.IsStockOrder = 0                 AND IsSystem = 0                 AND                 (             (             IsPay = 1             AND IsFBAOrder = 0             )             OR IsFBAOrder = 1                 )                 AND OrderStatus <> 2             GROUP BY oi.CustomerID,                     oi.OrderSourceID,                     oi.OrderCode,                 oi.TotalPrice,                 oi.DownLoadUpdateTime,                 oi.ExchangeUSD,                 oi.AddTime            )oi            inner JOIN RB_OrderSource (NOLOCK) os             ON oi.OrderSourceID = os.ID  AND oi.CustomerID= os.CustomerID         INNER JOIN RB_Admin (NOLOCK) ad ON oi.CustomerID=ad.CustomerID AND oi.SaleAdminID=ad.ID            -- 使用 CROSS APPLY 处理字符串逻辑,相当于给每一行生成一个临时计算表            CROSS APPLY (                SELECT                     -- 1. 统一清洗后的路径                    LTRIM(RTRIM(                        REPLACE(REPLACE(REPLACE(REPLACE(ad.UserFullPathName, ''全公司 - '', ''''), ''全公司 > '', ''''), '' - '', ''>''), '' > '', ''>'')                    )) AS CleanPath            ) AS Cleaner            CROSS APPLY (                SELECT                     -- 2. 基于清洗后的路径计算一级部门                    CASE                         WHEN CHARINDEX(''>'', Cleaner.CleanPath) > 0                         THEN LEFT(Cleaner.CleanPath, CHARINDEX(''>'', Cleaner.CleanPath) - 1)                         ELSE Cleaner.CleanPath                     END AS FirstLevelDept,                            -- 3. 基于清洗后的路径计算二级部门                    CASE                         WHEN CHARINDEX(''>'', Cleaner.CleanPath) > 0                         THEN                             CASE                                 WHEN CHARINDEX(''>'', Cleaner.CleanPath, CHARINDEX(''>'', Cleaner.CleanPath) + 1) > 0                                 THEN SUBSTRING(                                        Cleaner.CleanPath,                                         CHARINDEX(''>'', Cleaner.CleanPath) + 1,                                         CHARINDEX(''>'', Cleaner.CleanPath, CHARINDEX(''>'', Cleaner.CleanPath) + 1) - CHARINDEX(''>'', Cleaner.CleanPath) - 1                                     )                                ELSE SUBSTRING(Cleaner.CleanPath, CHARINDEX(''>'', Cleaner.CleanPath) + 1, LEN(Cleaner.CleanPath))                            END                        ELSE NULL                     END AS SecondLevelDept            ) AS ad2            -- 【核心优化】在这里统一计算 DepartmentName,主查询直接取用            CROSS APPLY (                SELECT                     LEFT(                    CASE                         WHEN os.OrderSourceType <= 0 THEN ''''                        WHEN ad2.FirstLevelDept IS NULL THEN REPLACE(REPLACE(ad.UserFullPathName, ''全公司 - '', ''''), ''全公司 > '', '''')                        WHEN ad.UserFullPath LIKE ''%{500}%'' THEN ad2.FirstLevelDept + CASE WHEN os.OrderSourceName LIKE ''%VC账号%'' THEN ''VC'' ELSE ''非VC'' END                        WHEN ad.UserFullPath LIKE ''%{520}%'' THEN ad2.FirstLevelDept + ''-'' + ISNULL(ad2.SecondLevelDept, '''')                        ELSE ad2.FirstLevelDept                    END,13) AS DepartmentName            ) AS DeptLogic            GROUP BY oi.CustomerID, CONVERT(VARCHAR(100), oi.AddTime, 23),os.OrderSourceType,DeptLogic.DepartmentName         ) t',N'@DtStart datetime,@DtEnd datetime',@DtStart='2026-04-03 00:00:00',@DtEnd='2026-04-10 23:59:59'

[结果]


[期望]

改成读库  或者 错开 6点半 到 7点 这个 时间段 
历史记录  
  1. 2026-04-17 10:28:21, 由 袁慧斌 创建。
  2. 2026-04-17 10:32:01, 由 李乐同 指派给 张明磊。
    修改了 指派给,旧值为 "liletong",新值为 "zhangminglei"。
  3. 2026-04-21 16:58:02, 由 张明磊 编辑。
    修改了 解决时效,旧值为 "0",新值为 "-1"。
  4. 2026-04-21 16:58:18, 由 张明磊 解决,方案为 程序BUG 。
    修改了 解决方案,旧值为 "",新值为 "code"。
    修改了 解决日期,旧值为 "",新值为 "2026-04-21 16:58:04"。
    修改了 指派给 ,旧值为 "zhangminglei",新值为 "yuanhuibin"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "zhangminglei"。
    已调整读库执行
  5. 2026-04-24 14:59:58, 由 袁慧斌 编辑。
    修改了 测试责任人,旧值为 "",新值为 "admin"。
    修改了 解决时效 ,旧值为 "0",新值为 "54.50"。
    修改了 截止日期 ,旧值为 "0000-00-00",新值为 "2026-04-24"。
    修改了 上线时间 ,旧值为 "0000-00-00 00:00:00",新值为 "2026-04-24 14:59"。
    修改了 上线时效 ,旧值为 "-1",新值为 "124.51"。
  6. 2026-04-24 15:00:01, 由 袁慧斌 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "yuanhuibin",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "yuanhuibin"。
    修改了 关闭日期,旧值为 "",新值为 "2026-04-24 15:00:01"。
  7. 2026-05-07 20:01:27, 由 陈莉珍 编辑。
    修改了 测试责任人,旧值为 "admin",新值为 "zhangminglei"。
    修改了 上线时间 ,旧值为 "2026-04-24 14:59:00",新值为 "2026-04-21 16:58:04"。
    修改了 上线时效 ,旧值为 "124.51",新值为 "54.50"。
  8. 2026-05-22 16:33:57, 由 曾倩 编辑。
    修改了 优先级,旧值为 "2",新值为 "3"。
  9. 2026-05-22 16:36:39, 由 曾倩 编辑。
    修改了 测试责任人,旧值为 "zhangminglei",新值为 "yuanhuibin"。
所属项目 技术中心-需求池
所属模块 财务   客户订单
所属计划
所属迭代
Bug类型
严重程度 一般
优先级 P2
Bug状态 已关闭
业务部门 供应链管理中心
影响功能
开发责任人 张明磊
测试责任人 袁慧斌
解决时效 54.5
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2026-05-22 16:36:39
截止日期 2026-04-24
上线时间 2026-04-21 16:58:04
上线时效 54.5
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 袁慧斌 于 2026-04-17 10:28:20
影响环境 生产环境-业务反馈
由谁解决 张明磊 于 2026-04-21 16:58:04
解决版本
解决方案 程序BUG
由谁关闭 袁慧斌 于 2026-04-24 15:00:01
最后修改 曾倩 于 2026-05-22 16:36:39
相关Bug