我有一个表,该表具有开始日期和结束日期。我必须获取这些日期并检查这些日期是否在另一个表的列值的范围内...
我尝试使用select
查询来获取开始日期和结束日期,并使用between
关键字检查范围
select invoice
from customer
where BOOK_DATE BETWEEN(select begindate, enddate
from Period
where i_status = 1)
实际结果:缺少关键字 预期结果:例如:开始日期= 19年5月1日,结束日期= 19年5月31日,book_date = 19年5月15日,它应返回发票编号,例如“ 123ABC”
答案 0 :(得分:2)
您可以使用EXISTS
和相关的子查询来检查是否存在时段内的行,预订日期在开始日期和结束日期之间,状态为1。
SELECT c.invoice
FROM customer c
WHERE EXISTS (SELECT *
FROM period p
WHERE c.book_date BETWEEN p.begindate
AND p.enddate
AND p.i_status = 1);
答案 1 :(得分:0)
两者之间有一个AND,您应该尝试
BETWEEN(SELECT begindate FROM Period WHERE i_status = 1) AND (SELECT enddate FROM
Period WHERE i_status = 1)