重现步骤

[步骤]

GetSingle:SELECT COUNT(1) FROM (                   SELECT RB_Product_Supplier.SupplierType,                         RB_Product_Supplier.IsFBABarCode,                         RB_Procurement_Detail_SingleList.ID AS xdID,                         RB_Procurement_Detail_SingleList.Memo,                         RB_Procurement_Detail_SingleList.StepRemark,                         RB_Procurement_Detail_SingleList.IsNewFlow,                         RB_Procurement_Detail_SingleList.StepType,                         RB_Procurement_Detail_SingleList.Single_NO AS Single_NO,                         RB_Procurement_Detail_SingleList.AddTime AS AddTime,                         RB_Procurement_Detail_SingleList.FinishDate AS FinishDate,                         RB_Procurement_Detail_SingleList.ShipAmount AS ShipAmount,                         RB_Procurement_Detail_SingleList.StepState AS StepState,                         RB_Procurement_Detail_SingleList.SingleAmount AS SingleAmount,                         RB_Procurement_Detail_SingleList.TrackingNumber,                         RB_Procurement_Detail_SingleList.TrackingNumbers,                         RB_Procurement_Detail_SingleList.BuyerID,                         RB_Procurement_Detail_SingleList.ProcPayType,                         RB_Procurement_Detail_SingleList.TransportType,                         RB_Procurement_Detail_SingleList.DeliveryTime,                         RB_Procurement_Detail_SingleList.PayState,                         RB_Procurement_Detail_SingleList.OrderStatus,                         RB_Procurement_Detail_SingleList.EnquiryStates,                         RB_Procurement_Detail_SingleList.IsAlibabaSingle,                         RB_Procurement_Detail_SingleList.IsTaobaoSingle,                         RB_Procurement_Detail_SingleList.IsAutoSubmit,                         RB_Procurement_Detail_SingleList.AutoSubmitResultType,                         RB_Procurement_Detail_SingleList.IsAuto,                         RB_Procurement_Detail_SingleList.AutoSubmitResultText,                         RB_Procurement_Detail_SingleList.PrepareBuyTime,                         RB_Procurement_Detail_SingleList_ForeignCurrency.Currency,                         RB_Procurement_Detail_SingleList_ForeignCurrency.ExchangeRMB,                         RB_Procurement_Detail_SingleList_ForeignCurrency.SingleAmountForeign,                         RB_Procurement_Detail_SingleList_ForeignCurrency.MinusAmountCurrencyForeign,                         RB_Procurement_Detail_SingleList_ForeignCurrency.ShipAmountForeign,                         RB_Procurement_Detail_SingleList_ForeignCurrency.PayTotalAmountForeign,                         RB_Procurement_Detail_SingleList_ForeignCurrency.PaidAmountForeign,                         WareHouseName AS WareHouseName,                         RB_Procurement_List.WareHouseID,                         RB_Procurement_List.ID,                         RB_Procurement_List.FinishStatus,                         (select top 1 SupplierSource from  RB_Product_Supplier(nolock) where ID = RB_Procurement_Detail_SingleList.SupplierID )    AS SupplierSource,                         RB_WareHouse.IsTaxFree,                         RB_WareHouse.WareHouseAddress,                         RB_WareHouse.WareHouseCode,                         RB_WareHouse.WareHouseProvince,                         RB_WareHouse.WareHouseCity,                         RB_WareHouse.WareHousePostCode,                         RB_Procurement_List.AOrderCode,                         RB_Procurement_List.P_Code AS P_Code,                         RB_Procurement_List.BuyerName AS BuyerName,                         RB_Procurement_Detail_SingleList.SupplierName,                         RB_Procurement_Detail_SingleList.IsNewSupplier,                         RB_Procurement_List.DevelopAdminName AS DevelopAdminName,                         RB_Procurement_List.IsUrgent,                         RB_Procurement_List.IsFactoryDirectDeliveryOrder,                          vNba.NobuyAmount,                          ROW_NUMBER() OVER (ORDER BY RB_Procurement_Detail_SingleList.ID DESC) AS RowNo,                         RB_Procurement_Detail_SingleList.OrderNo,                         RB_Procurement_List.IsSample                  FROM RB_Procurement_Detail_SingleList WITH (NOLOCK)                      LEFT JOIN RB_Procurement_Detail_SingleList_ForeignCurrency WITH (NOLOCK)                          ON RB_Procurement_Detail_SingleList_ForeignCurrency.Single_NO = RB_Procurement_Detail_SingleList.Single_NO                             AND RB_Procurement_Detail_SingleList_ForeignCurrency.CustomerID = RB_Procurement_Detail_SingleList.CustomerID                      LEFT JOIN RB_Procurement_List WITH (NOLOCK)                          ON RB_Procurement_List.P_Code = RB_Procurement_Detail_SingleList.P_Code                             AND RB_Procurement_List.CustomerID = RB_Procurement_Detail_SingleList.CustomerID                      LEFT JOIN RB_Product_Supplier WITH (NOLOCK)                          ON RB_Procurement_List.SupplierID = RB_Product_Supplier.ID                             AND RB_Procurement_List.CustomerID = RB_Product_Supplier.CustomerID                      LEFT JOIN E_Website (NOLOCK)                          ON E_Website.CustomerID = RB_Procurement_List.CustomerID                      LEFT JOIN RB_WareHouse (NOLOCK)                          ON RB_Procurement_List.WareHouseID = RB_WareHouse.ID                             AND RB_Procurement_List.CustomerID = RB_WareHouse.CustomerID                       outer apply( SELECT    COUNT(1) AS NobuyAmount                                        FROM      ( SELECT    pdsd.ActualBuyNum AS SingleNum ,                                                              buy.ActualBuyNum ,                                                              pdsd.ActualBuyNum - ISNULL(buy.ActualBuyNum, 0) AS NobuyNum                                                    FROM      RB_Procurement_Detail_SingleList_Detail pdsd                                                              WITH ( NOLOCK )                                                              LEFT JOIN RB_Procurement_Detail_SingleList pds WITH(NOLOCK) ON pds.CustomerID = pdsd.CustomerID                                                                                            AND pds.ID = pdsd.ListID                                                              LEFT JOIN ( SELECT  pdb.Single_NO ,                                                                                  pdb.CustomerID ,                                                                                  pdbd.SKU ,                                                                                  pdbd.DetailID ,                                                                                  SUM(pdbd.ActualBuyNum) AS ActualBuyNum                                                                          FROM    RB_Procurement_Detail_BuyList_Detail pdbd ( NOLOCK )                                                                                  LEFT JOIN dbo.RB_Procurement_Detail_BuyList pdb ( NOLOCK ) ON pdb.CustomerID = pdbd.CustomerID                                                                                            AND pdbd.ListNo = pdb.ListNo                                                                          GROUP BY pdb.Single_NO ,                                                                                  pdb.CustomerID ,                                                                                  pdbd.SKU ,                                                                                  pdbd.DetailID                                                                        ) buy ON buy.CustomerID = pdsd.CustomerID                                                                                 AND buy.DetailID = pdsd.DetailID                                                                                 AND buy.SKU = pdsd.SKU                                                                                 AND buy.Single_NO = pds.Single_NO                                                    WHERE     pds.Single_NO = RB_Procurement_Detail_SingleList.Single_NO and pds.CustomerID = RB_Procurement_Detail_SingleList.CustomerID                                                  ) t                                        WHERE     t.NobuyNum > 0                                      )vNba                   WHERE RB_Procurement_Detail_SingleList.CustomerID = 1                       and RB_Procurement_Detail_SingleList.StepState=9  and  RB_Procurement_Detail_SingleList.IsNewFlow=1                ) AS PagerTable


[结果]


[期望]

从业务角度加入核心条件  或者改造SQL 使其效率提升
历史记录  
  1. 2025-04-25 10:16:52, 由 袁慧斌 创建。
  2. 2025-04-25 10:17:35, 由 李乐同 指派给 何建宝。
    修改了 指派给,旧值为 "liletong",新值为 "hejianbao"。
  3. 2025-04-25 10:31:18, 由 何建宝 指派给 宋宇。
    修改了 指派给,旧值为 "hejianbao",新值为 "songyu"。
    先分析下有没有优化空间,如果改动大转需求处理
  4. 2025-04-25 14:18:41, 由 宋宇 解决,方案为 历史bug(180天以上) 。
    修改了 解决方案,旧值为 "",新值为 "history"。
    修改了 解决版本,旧值为 "",新值为 "trunk"。
    修改了 解决日期,旧值为 "",新值为 "2025-04-25 14:17:59"。
    修改了 指派给 ,旧值为 "songyu",新值为 "yuanhuibin"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "songyu"。
    该问题主要是因为打开页面的时候执行了一次无条件查询的原因,目前已经屏蔽掉该次无条件查询
  5. 2025-04-27 16:11:24, 由 袁慧斌 编辑。
    修改了 测试责任人,旧值为 "",新值为 "admin"。
    修改了 解决时效 ,旧值为 "0",新值为 "4.02"。
  6. 2025-04-27 16:11:27, 由 袁慧斌 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "yuanhuibin",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "yuanhuibin"。
    修改了 关闭日期,旧值为 "",新值为 "2025-04-27 16:11:27"。
所属项目 技术中心-需求池
所属模块 供应链   产品采购   采购
所属计划
所属迭代
Bug类型
严重程度 一般
优先级 P2
Bug状态 已关闭
业务部门 供应链管理中心
影响功能
开发责任人 何建宝
测试责任人 admin
解决时效 4.02
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2025-04-27 16:11:27
截止日期 0000-00-00
上线时间 0000-00-00 00:00:00
上线时效 -1
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 袁慧斌 于 2025-04-25 10:16:51
影响环境 生产环境-线上测试
由谁解决 宋宇 于 2025-04-25 14:17:59
解决版本 主干
解决方案 历史bug(180天以上)
由谁关闭 袁慧斌 于 2025-04-27 16:11:27
最后修改 袁慧斌 于 2025-04-27 16:11:27
相关Bug