私は、SQL Server 2014を使用していますが、私が抜粋を以下に示しているの私のSQLデータベース内(NonRoomBundleと呼ばれる)次の表は、持っている:SQL ServerでこのロジックのCASE文構文を記述する方法は?
ResaID StayDate BundleDate BundleID
50 NULL 2016-03-03 00:00:00.000 123
50 2016-02-28 00:00:00.000 NULL 3
50 2016-02-29 00:00:00.000 NULL 3
50 2016-03-01 00:00:00.000 NULL 3
50 2016-03-02 00:00:00.000 NULL 3
50 2016-03-03 00:00:00.000 NULL 3
50 2016-03-04 00:00:00.000 NULL 3
50 2016-03-05 00:00:00.000 NULL 3
50 2016-03-02 00:00:00.000 NULL 3
56 NULL 2016-04-02 00:00:00.000 120
56 2016-04-01 00:00:00.000 NULL 25
56 2016-04-02 00:00:00.000 NULL 25
56 2016-04-03 00:00:00.000 NULL 25
BundleDate列がBundleIdがすべきで有効StayDateを示し私は私に次のような出力を提供しますクエリを記述する必要がある123
こと:BundleId上記のよう
ResaID StayDate BundleDate BundleID
50 NULL 2016-03-03 00:00:00.000 123
50 2016-02-28 00:00:00.000 NULL 3
50 2016-02-29 00:00:00.000 NULL 3
50 2016-03-01 00:00:00.000 NULL 3
50 2016-03-02 00:00:00.000 NULL 3
50 2016-03-03 00:00:00.000 NULL 123
50 2016-03-04 00:00:00.000 NULL 123
50 2016-03-05 00:00:00.000 NULL 123
50 2016-03-02 00:00:00.000 NULL 123
56 NULL 2016-04-02 00:00:00.000 120
56 2016-04-01 00:00:00.000 NULL 25
56 2016-04-02 00:00:00.000 NULL 120
56 2016-04-03 00:00:00.000 NULL 120
はBundleDateである「2016年3月2日」からのように123になります。 SQLについての私の知識は私にCASEステートメントがトリックをするべきだと私に伝えますが、私はそれを書くのが苦労しています。私はこれまでにこれに達しました:
SELECT StayDate
,BundleDate
,(CASE WHEN BundleDate >= StayDate THEN ....
FROM NonRoomBundle
それは動作しません。 – user3115933
また、BundleIDに明示的な値を設定したくないので、テーブル全体を実行する必要があります。私は私の質問にテーブルの抽出物のみを示しました。 – user3115933
もっと多くのデータ例を提供できますか? –