欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sel server 2008 数据累加解决方法

更新时间: 2014-01-05 02:17:08 责任编辑: Author_N1

 

sel server 2008 数据累加
有两张表A,B 分别记录用户的订购及退订信息:
A: aphonenum (varchar(100)),aupload(datetime)
B:  bphonenum (varchar(100)),bupload(datetime),del(datetime)
A 表列分别表示:号码,开通时间,B表 只比A多个 退订时间 del
现在要求:查出13年1-11月每月的累计用户和。例如 查询 一月 的和即:
select(select count(*) from A where aupload<'2013-2-1')
+
(select count(*) from B where bupload<'2013-2-1' and del>='2013-2-1')
得出 一月的总数,2月以此类推,时间2013-2-1 变成 2013-3-1,最后要求的数值 就是1月查出来的加上2月的,以此类推到需要查到的月份,
现在 想可不可以 一次性查出结果,或者对应每月的数量列举出来,一个月一个月的查 速度太慢,哪位大神能指导下,万分感谢!
--参考方法--
try this,

select x.number '月份',
       t.qty '累计用户和'
from
(select number
 from master.dbo.spt_values
 where type='P' and number between 1 and 11) x
outer apply
(select (select count(*) from A
         where aupload<dateadd(m,number-1,'2013-2-1'))
       +(select count(*) from B 
         where bupload<dateadd(m,number-1,'2013-2-1') and del>=dateadd(m,number-1,'2013-2-1')) 'qty') t
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:17:08
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7964/
本文WWW.DOC100.NET DOC100.NET版权所有。