求一个sql 语句《高手请进22》

8292669 2006-03-14 03:32:49
我有一个数据表:

total_reg有下字段:
id int
total_num int 总数
total_date datetime 时间


记录每天注册总数,现在我要做一个报表,需要计算出每天新注册的用户量。那么我该怎么样写这个语句呢。

例如:

total_reg 表

id total_num total_date
1 30000 2006-1-1
2 35000 2006-1-2
3 38000 2006-1-3


那么我得到报表是:

id new_num total_date
1 5000 2006-1-1
2 3000 2006-1-2


请高手出手啊!
...全文
70 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2006-03-14
  • 打赏
  • 举报
回复
declare @t table (id int,total_num int,total_date datetime)
insert @t
select 1,30000,'2006-1-1' union all
select 2,35000,'2006-1-2' union all
select 3,38000,'2006-1-3'



select id,(select total_num from @t where id = a.id + 1 ) - total_num as total_num,
total_date
from @t a
where
exists(select 1 from @t where datediff(dd,a.total_date,total_date)=1)

/*

id total_num total_date
----------- ----------- ------------------------------------------------------
1 5000 2006-01-01 00:00:00.000
2 3000 2006-01-02 00:00:00.000

*/
子陌红尘 2006-03-14
  • 打赏
  • 举报
回复
declare @total_reg table(id int,total_num int,total_date datetime)
insert into @total_reg select 1,30000,'2006-1-1'
insert into @total_reg select 2,35000,'2006-1-2'
insert into @total_reg select 3,38000,'2006-1-3'

select
a.id,
total_num=(select total_num from @total_reg where datediff(dd,a.total_date,total_date)=1)-a.total_num,
a.total_date
from
@total_reg a
where
exists(select 1 from @total_reg where datediff(dd,a.total_date,total_date)=1)

/*
id total_num total_date
----------- ----------- ------------------------------------------------------
1 5000 2006-01-01 00:00:00.000
2 3000 2006-01-02 00:00:00.000
*/

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧