【发布时间】:2012-02-21 17:11:39
【问题描述】:
我有下表。
DATE | AMT
10/10 | 300
12/10 | 300
01/11 | 200
03/11 | 100
我如何获得每月总数?结果像 -
DATE | TOT
1010 | 300
1110 | 300
1210 | 600
0111 | 800
0211 | 800
0311 | 900
类似的sql语句
SELECT SUM(AMT) FROM TABLE1 WHERE DATE BETWEEN '1010' AND '0111'
会导致 0111 的 800 但是...
注意没有日期限制。这是我的困境。如何在不对所有日期进行循环的情况下填充此列并同时显示缺失的月份?
【问题讨论】:
-
DATE 是 VARCHAR 还是什么类型?
-
提示:见mysql手册dev.mysql.com/doc/refman/5.0/en/group-by-functions.html中的“GROUP BY”
-
@bumperbox - 不处理
and have the missing months displayed as well -
从给定的例子中,这个结果是从哪里来的?
1110 | 300 -
请不要以
DATE之类的SQL 类型命名您的列,即使该类型的名称是列名的明显选择。从长远来看,消除类型名称和列名称歧义所花费的时间是不值得的。
标签: mysql sql gaps-and-islands