iwtech.ru
iwtech.ru

Reputation: 39

MySQL query date ranges

I have googled but did not find anything related. I have a MySQL table like this:

+++++++++++++++++++++++++++++++
| roomID |    date    | price |
+++++++++++++++++++++++++++++++
|  1     | 2012-10-10 |   10  |
|  1     | 2012-10-11 |   10  |
|  1     | 2012-10-12 |   10  |
|  1     | 2012-10-13 |   12  |
|  2     | 2012-10-10 |   15  |
|  2     | 2012-10-11 |   15  |
|  2     | 2012-10-12 |   15  |
|  2     | 2012-10-13 |   16  |
|  2     | 2012-10-14 |   16  |
|  2     | 2012-10-15 |   16  |
+++++++++++++++++++++++++++++++

I need to get periods based on price and roomID:

++++++++++++++++++++++++++++++++++++++++++++
| roomID |    from    |    till    | price |
++++++++++++++++++++++++++++++++++++++++++++
|    1   | 2012-10-10 | 2012-10-12 |   10  |
|    1   | 2012-10-13 | 2012-10-13 |   12  |
|    2   | 2012-10-10 | 2012-10-12 |   15  |
|    2   | 2012-10-13 | 2012-10-15 |   16  |
++++++++++++++++++++++++++++++++++++++++++++

Thank you!

Upvotes: 2

Views: 200

Answers (2)

Shubhanshu Mishra
Shubhanshu Mishra

Reputation: 6700

You can try using the following query:

SELECT roomid, MIN(date) AS `from`, MAX(date) AS `till`, price
FROM tableName
GROUP BY price
ORDER BY price

Upvotes: 4

juergen d
juergen d

Reputation: 204746

select roomid,
       min(date) as from,
       max(date) as till,
       price
from periods
group by price
order by price

Upvotes: 6

Related Questions