我正在寻找一种确定员工是否已直接为客户解决问题的方法。当员工需要在7天之内返回时,问题没有得到解决。
情况:
数据集看起来像这样,我伪造了结果:
LiveData
我需要计算最后一列。根据7天或以上的客户,员工和日期差异。任何人如何解决这个问题的线索? 一直在尝试使用超前和滞后,但是由于访问量未知,因此失败。
谢谢!
答案 0 :(得分:1)
CASE WHEN EXISTS
是执行此操作的一种方法:
SELECT Customer,
[Date],
Employee,
CASE WHEN EXISTS (SELECT *
FROM yourTable T2
WHERE T.[Date] < T2.[Date]
AND DATEDIFF(DAY, T.[Date], T2.[Date]) < 8
AND T.Customer = T2.Customer)
THEN 0
WHEN EXISTS (SELECT *
FROM yourTable T2
WHERE T.Employee = T2.Employee
AND T.Customer = T2.Customer
AND T.[Date] <> T2.[Date])
THEN 0
ELSE 1
END Outcome_Fixed
FROM yourTable T
这首先检查在接下来的7天内是否有人拜访了同一位客户。如果是0
,否则为1
。然后,它检查以确保同一位员工之前没有失败。我相信这涵盖了您的所有条件。