0

脑子都冻僵了...

我有 4 个状态日期,即客户记录上的状态发生更改的时间,然后我需要查询数据并查找客户在特定日期的状态。

例如数据

客户设置日期 现场日期 关闭日期 关闭日期

0001 01/01/12 10/01/12 23/02/12 15/11/12

0002 08/10/12 11/11/12

0003 2012 年 11 月 12 日

因此,对于 2012 年 12 月 31 日的日期,0001 将表示关闭状态,0002 将表示实时,0003 将表示设置。

我只想返回该日期的客户和状态。

所以在 31/12/12 我会得到 0001 Closed 0002 Live 0003 Setup 的结果

我用一个案例尝试了这个,但它在某个地方出错了,因为它似乎让我返回了相同的状态,我可以看到为什么它不起作用,但我的小脑袋无法找到让它工作的方法。这来自另一个提取并插入#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 次......我可以做到这一点!哈哈

任何帮助表示赞赏!

4

1 回答 1

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
于 2013-01-21T12:24:47.340 回答