我有这张桌子:
+----+---------------------+---------+---------+
| id | date | amounta | amountb |
+----+---------------------+---------+---------+
| 1 | 2014-02-28 05:58:41 | 148 | 220 |
+----+---------------------+---------+---------+
| 2 | 2014-01-20 05:58:41 | 50 | 285 |
+----+---------------------+---------+---------+
| 3 | 2014-03-30 05:58:41 | 501 | 582 |
+----+---------------------+---------+---------+
| 4 | 2014-04-30 05:58:41 | 591 | 53 |
+----+---------------------+---------+---------+
| 5 | 2013-05-30 05:58:41 | 29 | 59 |
+----+---------------------+---------+---------+
| 6 | 2014-05-30 05:58:41 | 203 | 502 |
+----+---------------------+---------+---------+
我想将年份= 2014年和最多月份 = 3年(1月,2月,3月)的每一行的所有列相加。
我不想每季度选择一次。我想能够在几个月之间进行选择。例如,从1月到4月,或从3月到9月。
我该怎么做?
答案 0 :(得分:5)
SELECT
SUM(amounta),
SUM(amountb)
FROM
t
WHERE
YEAR(`date`)=2014
AND
QUARTER(`date`)=1
这将适合季度查询。但是,对于月份间隔,当然要使用MONTH()
:
SELECT
SUM(amounta),
SUM(amountb)
FROM
t
WHERE
YEAR(`date`)=2014
AND
MONTH(`date`)>=1
AND
MONTH(`date`)<=8
答案 1 :(得分:0)
试试这个
SELECT SUM(amounta) FROM `your_table`
WHERE date LIKE '2014-01-%' OR date LIKE '2014-02-%' OR date LIKE '2014-03-%'
答案 2 :(得分:0)
试试这个
SELECT
SUM(Case when YEAR(`date`)=2014 AND QUARTER(`date`)=1 Then amounta else 0 end),
SUM(Case when YEAR(`date`)=2014 AND QUARTER(`date`)=1 Then amountb else 0 end)
FROM Table1