关于SQL计算累加
我现在有这么一张表我想得到这样的结果请问SQL语句该怎么实现因为我现在是用Access数据库,所以能在Access里实现,感激不尽啊...
我现在有这么一张表
我想得到这样的结果
请问SQL语句该怎么实现 因为我现在是用Access数据库,所以能在Access里实现,感激不尽啊 展开
我想得到这样的结果
请问SQL语句该怎么实现 因为我现在是用Access数据库,所以能在Access里实现,感激不尽啊 展开
展开全部
--sql 其实很简单 语法你都会 关键是怎么组合
select year,month,(select sum(membercount) from tablename b where b.year=a.year and b.month<=a.month)
all_membercount from tablename a
--注:year和month 无论什么数据类型都不影响 把表名换成你的表名(内表外表表名是一样的) 就可以了
--希望解决了楼主的问题
select year,month,(select sum(membercount) from tablename b where b.year=a.year and b.month<=a.month)
all_membercount from tablename a
--注:year和month 无论什么数据类型都不影响 把表名换成你的表名(内表外表表名是一样的) 就可以了
--希望解决了楼主的问题
更多追问追答
追问
这个语句执行后只对当前年里的每个月累加了
想要的结果是从2012年1月加到2013年12月(累计注册会员个数)
追答
--不好意思 没有把year和month合在一起 用这个 year和month是字符串的 不行q我
select year,month,(select sum(membercount) from tablename b where b.year+‘-’+b.month<=a.year+'-'+a.month)
all_membercount from tablename a
展开全部
如果你year和month是字符型的话用这个,把表名换一下,我起的叫test(一共两处)
select b.year,b.month,sum(a.membercount)
from test a,test b where format(a.year+'-'+a.month+'-01') <=format(b.year+'-'+b.month+'-01')
group by b.year,b.month
order by format(b.year+'-'+b.month+'-01')
如果你year和month是数字型的话用这个
select b.year,b.month,sum(a.membercount)
from test a,test b where format(str(a.year)+'-'+str(a.month)+'-01') <=format(str(b.year)+'-'+str(b.month)+'-01')
group by b.year,b.month
order by format(str(b.year)+'-'+str(b.month)+'-01')
select b.year,b.month,sum(a.membercount)
from test a,test b where format(a.year+'-'+a.month+'-01') <=format(b.year+'-'+b.month+'-01')
group by b.year,b.month
order by format(b.year+'-'+b.month+'-01')
如果你year和month是数字型的话用这个
select b.year,b.month,sum(a.membercount)
from test a,test b where format(str(a.year)+'-'+str(a.month)+'-01') <=format(str(b.year)+'-'+str(b.month)+'-01')
group by b.year,b.month
order by format(str(b.year)+'-'+str(b.month)+'-01')
更多追问追答
追问
'format' 不是可以识别的 内置函数名称。
追答
诶?你ac是什么版本?我在我03的环境下好使呀
还有你year字段和month字段是什么类型,文本还数字
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select year,month,(sum(membercount) over()) membercount1 from tab;
追问
你这个不对,执行后每个月都是1021
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle 中有个分析函数sum() over() 可以实现。
access好像没有,
这个sql试一下:
select a,b,(select sum(c) from tt where tt.a= t.a and tt.b<= t.b) from t
access好像没有,
这个sql试一下:
select a,b,(select sum(c) from tt where tt.a= t.a and tt.b<= t.b) from t
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select [year],[month],(select sum(membercount) from table1 where [year]=a.[year] and [month]<=a.[month]) from table1 a
另外,建议不要用year、month这样的字眼作为字段名
另外,建议不要用year、month这样的字眼作为字段名
追问
你这个语句执行结果跟上面那位兄弟一样,只是对当前年中每个月数据值进行累加了,
我想要两年的值累加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |