0

脳が凍っています...

私には4つのステータス日付があります。つまり、クライアントレコードでステータスが変更されたときです。次に、データをクエリして、特定の日付でクライアントがどのステータスであったかを確認する必要があります。

例:データ

クライアントセットアップ日ライブ日終了日終了日

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

0002 08/10/12 11/11/12

0003 11/12/12

したがって、31/12/12の日付の場合、0001はクローズのステータスを示し、0002はライブ、0003はセットアップを示します。

その日のクライアントとステータスのみを返したいのですが。

したがって、2012年12月31日に、0001 Closed 0002 Live0003Setupの結果が得られます。

ケースを使ってこれを試しましたが、同じステータスが返されているようで、どこかで問題が発生しました。なぜ機能しないのかはわかりますが、私の小さなノギンはそれを機能させる方法を見つけることができません。これは、#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 に答える