大脑冻结......
我有4个状态日期,即在客户记录上更改状态时,我需要查询数据并查找客户在特定日期的状态。
e.g。数据
客户端设置日期实际截止日期截止日期
0001 01/01/12 10/01/12 23/02/12 15/11/12
0002 08/10/12 11/11/12
0003 11/12/12
因此,对于2012年12月31日的日期,那么0001表示关闭状态,0002将是Live,0003将是设置。
我想只返回该日期的客户和状态。
所以在2012年12月31日我会得到一个结果 0001关闭 0002直播 0003设置
我尝试使用一个案例,但它在某个地方出了问题,因为它似乎让我恢复了相同的状态,我可以看到为什么它不起作用但我的小noggin无法找到一种方法让它工作。这来自另一个提取并插入#Temp表的查询。
CASE
WHEN #TempOutput.[System Setup] BETWEEN @Start and @End THEN 'Prospect'
WHEN #TempOutput.[Prospect to Live] BETWEEN @Start and @End THEN 'Live'
WHEN #TempOutput.[Live to Terminal] BETWEEN @Start and @End THEN 'Terminal'
WHEN #TempOutput.Closing BETWEEN @Start and @End THEN 'Closed'
END
这就像第一步,因为我需要循环显示这一步,以显示一段时间内每个客户端的状态。因此,如果是每周一段时间,则需要根据录入日期循环52次......我可以做到这一点! LOL
任何帮助表示赞赏!
答案 0 :(得分:0)
SELECT Client,
CASE
WHEN [Closed] <= @GivenDate THEN 'Closed'
WHEN [Closing] <= @GivenDate THEN 'Closing'
WHEN [Live to Terminal] <= @GivenDate THEN 'Terminal'
WHEN [Prospect to Live] <= @GivenDate THEN 'Live'
ELSE 'Prospect'
END Status
FROM #TempOutput
WHERE [System Setup] <= @GivenDate