2012-04-10 110 views
0

我有以下存储数据的表:MySQL的每周报告给定的开始日期和结束日期

recordDate itemID price 
2012-03-30 2  15.1 
2012-03-30 13  15.1 
2012-04-06 2  15.2 
2012-04-06 13  15.3 
2012-04-15 2  16.2 
2012-04-16 13  16.3 
2012-04-26 2  14.9 
2012-04-26 13  15.0 
... 

我想有一个每周报告,从周五开始和结束下周四。 并且所选数据也只记录在给定的日期。

例如:startDate = "2012-04-01", endDate = "2012-04-30"

我预期的结果是这样的:

weekStart weekEnd  itemID price 
2012-04-06 2012-04-12 2  15.2 
2012-04-06 2012-04-12 13  15.3 
2012-04-13 2012-04-19 2  16.2 
2012-04-13 2012-04-19 13  16.3 
2012-04-20 2012-04-27 2  14.9 
2012-04-20 2012-04-27 13  15.0 
... 

我怎样才能得到这样的结果?我对SQL不熟悉,所以我不知道如何编写这个语句。

+0

我可以从PHP获取星期五和星期四日期,并从一周获得结果,但我不知道如何将结果分组,如我所提及的。 – Hanon 2012-04-10 11:13:45

回答

0
SELECT 
    DAYNAME('2012-04-06') AS `start_week`, 
    DAYNAME('2012-04-12') AS `End_week`, 
    item_id, 
    price 
FROM 
    store 
WHERE record_date BETWEEN '2012-04-06' 
    AND '2012-04-12' ; 

试试这个?

+0

啊..我的错,我已经更新了我的问题 – Hanon 2012-04-10 11:10:04

+0

我想你的意思是通过ITEM_ID说组那么这里就是你的查询 选择 DAYNAME(“2012-04-06”)AS'start_week', DAYNAME(” 2012-04-12' )AS'End_week', ITEM_ID, 价格 FROM 店 WHERE record_date BETWEEN '2012-04-06' AND '2012-04-12' GROUP BY ITEM_ID; – 2012-04-10 12:21:39

0
SELECT * from store where DAYNAME(recordDate) in ('Friday','Saturday','Sunday','Monday','Tuesday') and 
start_date = '2012-01-01' and end_date = '2012-04-10' 
相关问题