2013-02-25 29 views
1

獲取月度總計我有一個表格,包含價格,日期作爲時間戳,入境月份和入境年份。SQL從表

+++++++++++++++++++++++++++++ 
Price | Date | Month | Year | 
+++++++++++++++++++++++++++++ 
9.00 |343345| 2 | 2013 | 
3.00 |343445| 2 | 2013 | 
4.00 |343245| 1 | 2013 | 
1.00 |342245| 1 | 2013 | 
5.00 |333355| 12 | 2012 | 

到目前爲止,我有這個列出月度價格總計,問題是GROUP BY,以使其月1重新排序結果,本月12日,然後每月2在那裏,因爲我需要的結果,從下降當前月份,月份。

"SELECT month,SUM(price), FROM table GROUP BY month ORDER BY date DESC " 

我使用PHP,如果有幫助。

回答

0

問題是您的日期字段沒有存儲爲日期時間。而不是按它排序,而是按年份和月份排序(我假設你想要按這兩個字段進行排序)。

SELECT year,month,SUM(price) 
FROM table 
GROUP BY year,month 
ORDER BY year DESC, month DESC 

如果一年和/或月被存儲爲varchar,然後抹上他們 - 我懷疑這些被存儲爲整數,雖:

1

它將您的月份視爲文本而不是數字。將其作爲整數進行轉換,並將其正確排序。

SELECT CAST(Month as int) as Month, SUM(PRICE), FROM table Group by month ORDER BY CAST(MONTH as int) desc 
0

你一個月強制轉換爲int數據類型:

SELECT month,SUM(price), SUM(price), FROM table GROUP BY month ORDER BY cast(month as UNSIGNED) DESC 

更多:CAST

0

我有類似的問題。我通過添加具有'日期'類型的另一列來解決此問題,並將日期中的所有不同字段進行轉換。然後你可以在時間範圍內進行選擇。