我每天都有不同分支机构的销售额记录集。 例如
Date Amount Branch
01/01/2014 30 A
01/01/2014 30 B
01/02/2014 40 A
01/02/2014 40 B
01/03/2014 30 A
01/03/2014 30 B
up to feb,mar,apr,may,jun,jul,aug
我想要实现的是根据今天的日期每月对记录进行分组。
例如今天是08/11/2014。范围应该是一个月的第一天" 1"然后我会选择今天的11天。因此所有月份的范围是1-11。见下面的样本。
Date Range for query monthly
01/01/2014-01/11/2014
02/01/2014-02/11/2014
03/01/2014-03/11/2014
04/01/2014-04/11/2014
05/01/2014-05/11/2014
06/01/2014-06/11/2014
07/01/2014-07/11/2014
08/01/2014-08/11/2014
将此日期范围分组并获得总销售额的总和。
请帮忙
答案 0 :(得分:3)
这应该完成大部分工作:
SELECT MONTH(date), SUM(amount)
FROM table_name
WHERE DAY(date) <= DAY(CURDATE())
AND date >= YEAR(CURDATE())
GROUP BY MONTH(date);
<强>更新强>
对于3个字母的月份标签,您也可能需要ORDER BY来确定:
SELECT DATE_FORMAT(date,'%b'), SUM(amount)
FROM table_name
WHERE DAY(date) <= DAY(CURDATE())
AND date >= YEAR(CURDATE())
GROUP BY MONTH(date)
ORDER BY MONTH(date);
答案 1 :(得分:2)
您应该能够通过使用以下MySQL查询来实现您想要的目标:
select sum('amount') from 'some_table'
where dayofmonth('sell_date') >= 1
and dayofmonth('sell_date') < dayofmonth(currdate())
group by month('sell_date');
我希望它有效,没有一些数据库可供测试。
您最终还可以通过分支进行分组,方法是在查询的分号前添加额外的, 'branch'
。