1

我有一张表格,上面有价格、日期作为时间戳、进入月份和进入年份。

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

4

4 回答 4

1

它将您的月份视为文本而不是数字。将其转换为整数,它会正确排序。

SELECT CAST(Month as int) as Month, SUM(PRICE), FROM table Group by month ORDER BY CAST(MONTH as int) desc
于 2013-02-25T00:13:14.507 回答
0

将您的月份转换为 INT 数据类型:

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

更多:演员表

于 2013-02-25T00:14:49.797 回答
0

我有类似的问题。我通过添加另一个具有“日期”类型的列并转换日期中的所有不同字段来解决它。然后您可以在时间范围内进行选择。

于 2013-02-25T00:15:32.860 回答
0

问题是您的日期字段未存储为日期时间。而不是按它排序,而是按您的年份和月份字段排序(我假设您想按这两个字段分组)。

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

如果年和/或月存储为 varchar,则转换它们——我怀疑它们存储为整数:

于 2013-02-25T00:18:58.473 回答