日付範囲の同じ行に複数の日付フィールドをフィルタリングしてレコードを選択するSQL文を作成しようとしていますが、指定された開始または終了データの下にある日付フィールド下の表から表示 実際に私はCrystalにSQLコマンドとして書き込む予定であるため、StartDateとEndDate、CountryとCityの値がこのSQL文に提供されます。だから、この瞬間のクリスタルレポートについては気にしないでください。 SQL Select文でこれをどうやって処理するのですか? アイデア???SQLは範囲内の複数の日付フィールドを選択する
パラメータは次のとおり開始日と終了日、国AND/OR市
SQL:
Select * from Table where
ActualStart in StartDate and EndDate
Or
ActualEnd in StartDate and EndDate
or
ProjectedStart in StartDate and EndDate
or ProjectedEnd in StartDate and EndDate
AND
County = CountyParam AND (if Not Null(CityParam) then City = CityParam)
DATA:
WORKID Country CITY Cost ActualStart ActualEnd ProjectedStart ProjectedEnd
18112 US BOSTON 0 NULL NULL 4/25/2017 NULL
18181 US BOSTON 566.76 6/1/2016 6/6/2017 6/6/2017 NULL
18183 GERMANY STUTTGART 0 NULL NULL 6/6/2017 NULL
18184 GERMANY MUNICH 0 NULL 6/6/2017 6/6/2017 NULL
18185 INDIA HYDERABAD 0 4/1/2015 NULL 7/6/2017 NULL
18186 CANADA TORONTO 0 NULL NULL 4/6/2017 NULL
18187 CANADA TORONTO 0 1/1/2016 NULL 3/6/2017 NULL
18188 CANADQ CALGARY 0 NULL NULL 6/6/2017 6/6/2018
18189 US BOSTON 0 NULL NULL 6/6/2017 NULL
18190 US CHICAGO 1429.76 NULL 6/7/2017 6/7/2017 NULL
18191 US NEWYORK 0 NULL NULL 8/7/2017 NULL
はちょうどCOALESCE(開始日を、「を使用し、 'BETWEEN'すなわち' WHERE(開始日と終了日BETWEEN ActualStart)OR(開始日と終了日BETWEEN actualEndは)OR ... ' –
を使用します1900- 01-01 ')をEndDateに、COALESCE(EndDate、' 2100-01-01 ')をEndDateに使用します。 –
ちょっと変わったようです。あなたは長期的なアイテムを除外しようとしていましたか?要求された開始日の前の開始日と、要求された終了日の後の終了日。 – Mic