2012-04-10 139 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' 
相關問題