首页 > 解决方案 > 如何计算表中的实例数(Countifs)

问题描述

非常感谢您的关注!

这是表格的链接

通常,此表在检查呼叫名称中会有一个字段,即“代答 - 实际”,表示已代答。但是,在某些情况下,CheckCallName 将绕过取件并进入已交付状态。在这种情况下,我想提取查询以以与使用 Pickup Actual 相同的方式处理“Delivered”状态。

因此,如果 kpo.loadtracking 没有 Pickup - Actual 在任何一个订单的 Check Call Name 字段中,我想将状态更改为“Delivered”的日期(KeypointStatusDate)。

我认为这类似于“Pickup-Actual 的状态计数大于 0,然后拉取最早的实际状态更新日期。

但是,当计数 = 0 时,我希望它提取与 Delivered CheckCallName 相关的日期。

表 1 应拉 10/5 - 表 2 应拉 10/2

我当前的代码如下:

SELECT DISTINCT 
    Load.LoadNumber             
    ,CustomerName               
    ,OrderStatus                
    ,PickedUpOn             
    ,CheckCallName              
    ,Min(LoadTracking.KeypointStatusDate) AS Earliest_Check_Call                
    ,CustomerRate               
    ,CarrierCost                
    ,Miles                          
FROM kpo.load               
INNER JOIN kpo.LoadExtension ON LOAD.LoadId = LoadExtension.LoadId              
INNER JOIN kpo.Customer ON customer.CustomerId = LOAD.CustomerID                
INNER JOIN kpo.LoadTracking ON LoadTracking.LoadId = LOAD.LoadId                    
WHERE
    DATEDIFF(MONTH, GETDATE(), LoadTracking.KeypointStatusDate) = - 2
    AND OrderStatus <> 'VOID'
    AND CheckCallName = 'Pickup - Actual'

--- WE NEED TO THEN LOOK AT EACH LOAD 
--- AND IF THERE IS NO PICKUP-ACTUAL THEN IT PULLS IN THE DELIVERED DATE.
--- THERE ARE SOME ORDERS THAT GO STRAIGHT TO DELIVERED STATUS. (453653)

GROUP BY                
    Load.LoadNumber
    ,OrderStatus                
    ,CustomerName               
    ,CheckCallName              
    ,PickedUpOn             
    ,CustomerRate               
    ,CarrierCost                
    ,Miles
ORDER BY
    Earliest_Check_Call     

标签: sqlcount

解决方案


推荐阅读