- テーブルには3つの列があります。 (1)ユーザID、(2)日付、(3)ステータス。
- Xユーザーがいて、それぞれにステータスの同じ期間のログがあります。
- ステータス(現在)は「アクティブ」またはヌルです。
- 行に5つの「アクティブな」日がある場合や、それらの間に20日かかる場合があります。
私が達成しようとしている目標は、次のとおりです。ユーザーのステータスが「アクティブ」である日の、「ファントム」(または任意の他)として次の5つの日付のステータスを設定します。私は2つの角度から問題にアプローチしようとした行の値がX(SQLテーブル)の場合、次の5行の行の値を設定します。
UserID Date Status
000001 01-01-17 null
000001 02-01-17 Active
000001 03-01-17 Phantom
000001 04-01-17 Phantom
000001 05-01-17 Phantom
000001 06-01-17 Phantom
000001 07-01-17 null
000001 08-01-17 null
000001 09-01-17 Active
000001 10-01-17 Phantom
:
前:
UserID Date Status
000001 01-01-17 null
000001 02-01-17 Active
000001 03-01-17 null
000001 04-01-17 null
000001 05-01-17 null
000001 06-01-17 null
000001 07-01-17 null
000001 08-01-17 null
000001 09-01-17 Active
000001 10-01-17 null
後 は、a)のサイクルとして、それは前のX行以内かどうかをチェックします'アクティブ'の値が表示されます b)ステータスが「アクティブ」の行とその後のX行をテンポラリテーブルに選択して後で結合する場合
私はそれが "値Xが日付と日付+ Xの間に存在するかどうか"をチェックする方法でなければならないと考えていますが、これまでこれを達成できませんでした。
これを達成する方法について非常に感謝しますか? (MSSQL)
これまでに試したことをお見せください。 SOは無料のコーディングサービスではありません。 –
ようこそスタックオーバーフロー!純粋なコードの書き込み要求は、スタックオーバーフローに関するトピックではありません。ここでは特定のプログラミング問題に関連する質問がありますが、私たちはあなた自身で書くことを喜んで支援します! [あなたが試したこと](https://stackoverflow.com/help/how-to-ask)とあなたが立ち往生しているところを教えてください。これはまた、あなたの質問によく答えるのにも役立ちます。 – WhatsThePoint
そのように見せていただき、ありがとうございましたことをお詫び申し上げます!非常にあなたの時間とアドバイスを感謝します。これまでにこのサービスを使って自分の質問をしたことはありません。私はそれがゴミと信じて混乱すると思うので、コードを追加することなくトピックを少し更新しました。 (私は試みた方法について説明し、代わりに潜在的な解決策と考えていました。)もちろん、必要に応じて行うこともできます。 –