如何在ACCESS 2010中实现对统一字段的不同条件在同一查询表格中的累加查询
如下数据表数据表序号项目日期金额1项目12013-1-101002项目12013-2-101003项目12013-3-101004项目12013-4-101005项目22...
如下数据表
数据表
序号 项目 日期 金额
1 项目1 2013-1-10 100
2 项目1 2013-2-10 100
3 项目1 2013-3-10 100
4 项目1 2013-4-10 100
5 项目2 2013-1-11 100
6 项目2 2013-2-11 100
7 项目2 2013-3-12 100
8 项目2 2013-4-13 100
查询结果如下
查询表
序号 项目 统计日期 金额合计
1 项目1 2013-1-31 200
2 项目1 2013-2-28 400
3 项目1 2013-3-31 600
4 项目1 2013-4-30 800
5 项目2 2013-1-31 200
6 项目2 2013-2-28 400
7 项目2 2013-3-31 600
8 项目2 2013-4-30 800
上面的计算数值写错了。。。不好意思。应该是这样的
查询表
序号 项目 统计日期 金额合计
1 项目1 2013-1-31 100
2 项目1 2013-2-28 200
3 项目1 2013-3-31 300
4 项目1 2013-4-30 400
5 项目2 2013-1-31 100
6 项目2 2013-2-28 200
7 项目2 2013-3-31 300
8 项目2 2013-4-30 400
以上的问题是需要累加! 展开
数据表
序号 项目 日期 金额
1 项目1 2013-1-10 100
2 项目1 2013-2-10 100
3 项目1 2013-3-10 100
4 项目1 2013-4-10 100
5 项目2 2013-1-11 100
6 项目2 2013-2-11 100
7 项目2 2013-3-12 100
8 项目2 2013-4-13 100
查询结果如下
查询表
序号 项目 统计日期 金额合计
1 项目1 2013-1-31 200
2 项目1 2013-2-28 400
3 项目1 2013-3-31 600
4 项目1 2013-4-30 800
5 项目2 2013-1-31 200
6 项目2 2013-2-28 400
7 项目2 2013-3-31 600
8 项目2 2013-4-30 800
上面的计算数值写错了。。。不好意思。应该是这样的
查询表
序号 项目 统计日期 金额合计
1 项目1 2013-1-31 100
2 项目1 2013-2-28 200
3 项目1 2013-3-31 300
4 项目1 2013-4-30 400
5 项目2 2013-1-31 100
6 项目2 2013-2-28 200
7 项目2 2013-3-31 300
8 项目2 2013-4-30 400
以上的问题是需要累加! 展开
2个回答
展开全部
根据结果,实际上就是按“项目”及“年月”分别把“金额” 进行合计统计。相应的SQL语句如下:
SELECT 项目,Format (日期,"YYYY/MM"),Sum(金额) FROM 表 GROUP BY 项目,Format(日期,"YYYY/MM")
在Access 中新建一个查询,把SQL语句写在里面,执行就是结果了。统计出来的“日期”自然是按年月的格式,而不是你说的月份的最后一天。如:
项目1 2013/01 200
项目1 2013/02 400
项目1 2013/03 600
项目1 2013/04 800
....
SELECT 项目,Format (日期,"YYYY/MM"),Sum(金额) FROM 表 GROUP BY 项目,Format(日期,"YYYY/MM")
在Access 中新建一个查询,把SQL语句写在里面,执行就是结果了。统计出来的“日期”自然是按年月的格式,而不是你说的月份的最后一天。如:
项目1 2013/01 200
项目1 2013/02 400
项目1 2013/03 600
项目1 2013/04 800
....
追问
谢谢,您的回答。
您的方法处理结果是将每个月份的求和在一起。
我需要的是将之前所有月份的一起累加在一起。
追答
1、如果你要把所有年份的数据按月份求和(也就是不看年份,只按月份,如:2月份就包括数据中的2011年,2012年,2013年等等),那SQL就修改为:
SELECT 项目,Format (日期,"MM"),Sum(金额) FROM 表 GROUP BY 项目,Format(日期,"MM") 就可以了,Sum()求和主要通过Group By 按项目分组求和的.
这样统计的结果如下:
项目1 01 200
项目1 02 400
项目2 01 300
。。。。
2、如果统计结果只按项目就合,包括所有的如期,那SQL为:
SELECT 项目,Sum(金额)AS 合计 FROM 表 GROUP BY 项目
这样的结果如下:
项目1 600
项目2 400
项目3 800
。。。。
关键是我理解你的需求不知道是否对!如果需求搞清楚的话,程序实现不是什么问题.我是根据你提供的统计结果来判断的.如果有什么问题,请继续.....
实际上你就告诉我你需要什么样的统计结果就OK了!
展开全部
SELECT 表1.项目, DateSerial(Year([日期]),Month([日期])+1,1)-1 AS 统计日期, DSum("金额","表1","Format(日期,'yyyymm')<='" & Format([日期],'yyyymm') & "' AND 项目='"& 表1.项目 &"") AS 金额合计
FROM 表1;
'这个是分项目与月份累计了.
'用到了DSum聚合函数.
'你这要求的不仅仅是一个累计,还有一个日期变值.
FROM 表1;
'这个是分项目与月份累计了.
'用到了DSum聚合函数.
'你这要求的不仅仅是一个累计,还有一个日期变值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询