1

開始日から終了日までの間に、特定の部屋が空いているかどうかを確認したいのですが。私はこれをWebサービス関数で行っています。この関数は、特定の部屋のすべての予約のリストを返します。このリストが空の場合、部屋は利用可能です。それ以外の場合は利用できません。知っているので、私はこのクエリを持っています。しかし、それは常に私のすべての予約を返します。

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 に答える