1

我想检查某个房间是否在开始日期和结束日期之间可用。我正在使用网络服务功能来做到这一点。此函数返回一个包含给定房间的所有预订的列表。如果此列表为空,则房间可用,否则不可用。要知道我有这个查询。但它总是回馈我所有的保留。

SELECT * FROM ARTICLES_RESERVERING res
INNER JOIN ARTICLES_ZAAL roo ON res.ZAALID = roo.ID 
WHERE roo.ID = @ZAALID
AND res.DATUM_BEGIN >= @DATUM_EINDE OR res.DATUM_EINDE <= @DATUM_BEGIN

有人可以帮忙吗?

4

2 回答 2

2

AND的优先级高于OR

将最后一行更改为:

AND (res.DATUM_BEGIN >= @DATUM_EINDE OR res.DATUM_EINDE <= @DATUM_BEGIN)
于 2012-05-29T11:59:29.483 回答
0
  SELECT * FROM ARTICLES_RESERVERING res
  INNER JOIN ARTICLES_ZAAL roo ON res.ZAALID = roo.ID 
  WHERE roo.ID = @ZAALID
  AND  @DATUM_EINDE between res.DATUM_BEGIN and res.DATUM_EINDE

我宁愿使用这个查询,因为使用OR通常很昂贵。

于 2012-05-29T12:01:46.750 回答