SQL用于选择范围内的多个日期字段

时间:2017-09-14 07:29:08

标签: sql sql-server select crystal-reports

我正在尝试创建一个SQL语句,通过过滤日期范围内同一行中的多个日期字段来选择记录,任何属于提供的开始或结束数据的日期字段,然后它应显示在下表中 实际上我打算在Crystal中编写SQL Command,因此StartDate和EndDate以及Country和City的值将提供给此SQL语句。所以,此刻不要为水晶报告而烦恼。它只是如何在SQL Select语句中处理它? 任何想法???

参数包括:StartDate和EndDate,Country AND / OR City

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)

数据:

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

1 个答案:

答案 0 :(得分:0)

感谢您的回答 我能够通过你的答案中的想法来解决这个问题,一个是在语法和合并函数之间使用,然后最后使用日期参数(From和To Date)向Crystal添加一个SQL命令。 对于处理Country和City的逻辑,我使用Crystal中的Select记录将其作为结束语句添加到以前的SQL。它现在工作正常。 感谢

相关问题