数据库sql 语句关联 统计

表A
日期 笔数
2014-1-1 1
2014-1-2 5
2014-1-3 6
2014-2-1 1
2014-2-12 12
2014-2-17 6
2014-3-7 6
想得到这个结果
年 月 这月笔数 历史笔数
2014 1 12 0
2014 2 19 12
2014 3 6 21
这样的语句怎么写,求高手

图片说明

select year(a.日期) as '年',month(a.日期) as '月',sum(a.笔数) as '这月笔数',
(select IFNULL(sum(b.笔数),0) from total b
where year(a.日期) = year(b.日期)
and month(a.日期) > month(b.日期)
) as '历史笔数'
from total a
group by year(a.日期),month(a.日期);

如果报:only full group错误
则使用:set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

http://www.cnblogs.com/Fooo/p/3435687.html
下次先百度!

SELECT YEAR(c.日期),MONTH(c.日期),SUM(c.笔数),(SELECT SUM(l.笔数) FROM tablename l
WHERE YEAR(l.日期)=YEAR(c.日期) AND MONTH(l.日期)< MONTH(c.日期)) FROM tablename c
GROUP BY YEAR(c.日期),MONTH(c.日期)

不知道是否合用,mysql语句,轻喷!

表结构

 --create table CSDN(
-- datetimes datetime ,
-- pens int,
--)

查询结果

 SELECT YEAR(datetimes) AS Y,MONTH(DATETIMES) AS M ,SUM(pens)AS NOW,(SELECT SUM(pens)FROM  CSDN B WHERE YEAR(A.datetimes)=YEAR(B.datetimes)AND MONTH(B.datetimes)<MONTH(A.datetimes)) AS OLD
FROM CSDN A group by year(datetimes),MONTH(datetimes)