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