2016-08-26 5 views
0

両方の部屋の2つの日付の間に利用可能な結果の部屋が必要です。2つの日付範囲の結果を表示しますか?

マイクエリ

SELECT * 
FROM `roomcalendar` 
WHERE day BETWEEN '2016-08-29' and '2016-08-31' 

結果 enter image description here

このクエリは、任意の結果を表示しません。

select * 
FROM roomcalendar 
WHERE day between '2016-08-30' and '2016-08-31' 
AND avaroom != 0 having count(*) = datediff('2016-08-31','2016-08-30') 

roomname = 'Room-A'のところで使用できますが、使用したくありません。部屋名を持つ2つの日付の間に利用可能な2つの部屋を取得するための他の方法?

+1

あなたは 'group by'を持っていないので、' count(*) 'は不定です。 –

+0

@MarcBグループでの使用方法を表示できますか? ?ありがとう。 –

+0

roomnameの結果を得るための任意のアイデア。常に1つの結果しか表示されません。 –

答えて

0

私が正しくあなたがかもしれない必要なものをあなたの質問を理解していればのようなもの:

SELECT r.roomname, SUM(r.avaroom) as availableRooms 
FROM roomcalendar r 
WHERE DAY BETWEEN '2016-08-29' AND '2016-08-31' 
GROUP BY r.roomname 

それは私はあなたをあげる:

+----------+----------------+ 
| roomname | availableRooms | 
+----------+----------------+ 
| Room-A |    5 | 
| Room-B |    4 | 
+----------+----------------+ 

はこれが何をしたいですか?

0
SELECT * 
FROM `roomcalendar` r 
WHERE DAY BETWEEN '2016-08-29' AND '2016-08-31' AND r.`avaroom`>0 
ORDER BY r.`day` 
+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。また、コードと説明の両方の可読性が低下するため、説明的なコメントを使用してコードを混乱させないようにしてください。 – FrankerZ

関連する問題