0
我想創建一個SQL語句,通過篩選日期範圍的同一行中的多個日期字段來選擇記錄任何日期字段屬於提供的開始或結束數據,那麼它應該從下面的表中顯示 實際上,我打算在Crystal中編寫SQL命令,因此StartDate和EndDate以及Country和City的值將提供給此SQL語句。所以,此時此刻不要擔心水晶報告。它只是如何在SQL Select語句中處理這個問題? 任何想法???SQL來選擇範圍內的多個日期字段
參數爲:起始日期和結束日期,國家和/或城市
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
只是用'BETWEEN'即'WHERE(ActualStart BETWEEN起始日期日期和結束日期)或(ActualEnd之間的起始日期日期和結束日期)或...' –
如果起始日期或結束日期可以爲NULL,使用COALESCE(起始日期,「1900- 01-01')爲EndDate的StartDate和COALESCE(EndDate,'2100-01-01')。 –
似乎有點奇怪。你是否打算排除長期運行的物品?在請求的開始日期之前的開始日期和在請求的結束日期之後的結束日期。 – Mic