SQL - 日期范围介于给定的日期范围之间

时间:2017-07-16 04:37:10

标签: sql date date-range

我正在努力寻找所有不属于租赁期的租约。 我的表格结构如下:

单位可用性表:

Unit Key  Start Date    End Date  Availability
     1     1/1/2015     6/1/2015       1
     1     6/2/2015   12/31/2015       0
     1     1/1/2016   12/31/2016       1
     2     1/1/2015     6/1/2015       1
     2     6/2/2015   12/31/2015       0

租赁表:

Unit Key  Lease Start  Lease End
     1     1/1/2015     6/1/2015
     1     7/2/2015     8/2/2015

我希望编写一个逻辑来确定所有不属于可用期的租约。在这种情况下,租约表中的第二行应该是输出。

非常感谢任何形式的帮助或领导。

2 个答案:

答案 0 :(得分:0)

你应该使用NOT EXISTS声明:

Product |  07/12|  07/11|  07/10|  07/09
--------+-------+-------+-------+-------
Apple   |     10|      3|      2|      5
Orange  |      3|      4|      3|      1
Grapes  |      6|      2|      5|      0
Tomato  |      4|      6|      2|      1

答案 1 :(得分:0)

我猜测Availability = 0意味着它不可用。

select distinct
  Lease.*
from
  Lease
  join UnitAvailability on
    Lease.UnitKey = UnitAvailability.UnitKey
    and Lease.LeaseStart <= UnitAvailability.EndDate
    and Lease.LeaseEnd >= UnitAvailability.StartDate
where
  Availability = 0