2012-10-13 75 views
2

我已使用Google搜索,但没有找到任何相关的信息。我有一个MySQL表是这样的:MySQL查询日期范围

 
+++++++++++++++++++++++++++++++ 
| 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 | 
+++++++++++++++++++++++++++++++

我需要根据价格和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 | 
++++++++++++++++++++++++++++++++++++++++++++

谢谢!

回答

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

您可以尝试使用下面的查询:

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

+1使用反引号(')了作为列/表达式名称的关键词。 –