求一存贮过程!

Hegemon 2008-04-03 03:59:42
表A
F_loginid F_logintime F_name F_Event(1=登录,0=离线)
0001 2008-04-03 14:40:04 aaa 1
0001 2008-04-03 14:40:59 aaa 0
0002 2008-04-03 14:42:09 aaa 1
0002 2008-04-03 14:44:13 aaa 0

要统计在线时长
统计结果如下:F_name F_logintime F_leveltime F_ontimes
aaa 2008-04-03 14:40:04 2008-04-03 14:40:59 00:00:55
aaa 2008-04-03 14:42:09 2008-04-03 14:44:13 00:02:04

F_Event=1 时F_logintime是登录时间
F_event=0 时F_logintime是离线时间
...全文
112 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaikai_kk 2008-04-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 HEROWANG 的回复:]
引用 5 楼 utpcb 的回复:
他们写的简单了点吧! 如果楼住的里面登陆的同一个ID有多个登陆时间呢多个离线时间呢? 楼住你要自己慢慢看写一个完整的!

同意啊。如果一个用户登陆时,上一次的登陆信息还要不要保存呢?
[/Quote]


LZ现在的数据,好像就是同一用户aaa,登陆两次啊
  • 打赏
  • 举报
回复
学习
bote_china 2008-04-04
  • 打赏
  • 举报
回复

select
A.F_loginid,
A.F_logintime,
(select
min(F_logintime)
from A B
where B.F_Event=0 and B.F_loginid =A.F_loginid
and B.F_logintime>A.F_logintime)
AS F_LogoutTime,
F_name ,
F_event
from A
where f_event =1
order by F_loginid
橘子香水 2008-04-03
  • 打赏
  • 举报
回复
select a.F_name,a.F_logintime,F_leveltime=b.F_logintime,
F_ontimes=b.F_logintime-a.F_logintime
from table a,table b
where a.F_Event=1 and b.F_Event=0 and
a.F_loginid=b.F_loginid
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 utpcb 的回复:]
他们写的简单了点吧! 如果楼住的里面登陆的同一个ID有多个登陆时间呢多个离线时间呢? 楼住你要自己慢慢看写一个完整的!
[/Quote]
同意啊。如果一个用户登陆时,上一次的登陆信息还要不要保存呢?
sweetweiwei 2008-04-03
  • 打赏
  • 举报
回复
create procedure dbo.getA
as
select F_name,
F_logintime,
F_leveltime,
F_ontimes
from (select F_loginid,
F_name,
min(F_logintime) as F_logintime,
max(F_logintime) as F_leveltime,
max(F_logintime) - min(F_logintime) as F_ontimes
from A
group by F_loginid,F_name) t
go
sweetweiwei 2008-04-03
  • 打赏
  • 举报
回复
create procedure dbo.getA
as
select F_name,
F_logintime,
F_leveltime,
F_ontimes
from (select F_loginid,
F_name,
min(F_logintime) as F_logintime,
max(F_logintime) as F_leveltime,
max(F_logintime) - min(F_logintime) as F_ontimes
from A
group by F_loginid,F_name) t
go
pt1314917 2008-04-03
  • 打赏
  • 举报
回复


declare @t table(F_loginid varchar(10),F_logintime datetime,F_name varchar(10),F_Event int)
insert into @t select '0001','2008-04-03 14:40:04','aaa',1
insert into @t select '0001','2008-04-03 14:40:59','aaa',0
insert into @t select '0002','2008-04-03 14:42:09','aaa',1
insert into @t select '0002','2008-04-03 14:44:13','aaa',0


select a.f_name,a.F_logintime,b.F_logintime,
F_ontimes=convert(varchar(10),b.F_logintime-a.F_logintime,108)
from @t a,@t b
where a.f_name=b.f_name and a.F_loginid=b.F_loginid and b.f_event=0 and a.f_event=1
utpcb 2008-04-03
  • 打赏
  • 举报
回复
他们写的简单了点吧! 如果楼住的里面登陆的同一个ID有多个登陆时间呢多个离线时间呢? 楼住你要自己慢慢看写一个完整的!
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
select f_loginid,
f_name,
max(case when f_event = 1 then f_logintime else null end) as f_logintime,
max(case when f_event = 0 then f_logintime else null end) as F_leveltime ,
max(case when f_event = 1 then f_logintime else null end) -
max(case when f_event = 0 then f_logintime else null end) as f_ontimes ,
from ta
group by f_loginid,f_name
liangCK 2008-04-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyflystone 的回复:]
SQL codeselect f_loginid,
f_name,
max(case when f_event = 1 then f_logintime else null end) as f_logintime,
max(case when f_event = 0 then f_logintime else null end) as f_logintime,
max(case when f_event = 1 then f_logintime else null end) as f_logintime -
max(case when f_event = 0 then f_logintime else null end) as f_logintime,
from ta
group by f_login…
[/Quote]

BS盗版
liangCK 2008-04-03
  • 打赏
  • 举报
回复
select f_name,
max(case when f_event=0 then f_logintime end) f_logintime,
max(case when f_event=1 then f_logintime end) f_leveltime,
max(case when f_event=1 then f_logintime end)-max(case when f_event=0 then f_logintime end) f_ontimes
from tb
group by f_loginid,f_name
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
select f_loginid,
f_name,
max(case when f_event = 1 then f_logintime else null end) as f_logintime,
max(case when f_event = 0 then f_logintime else null end) as f_logintime,
max(case when f_event = 1 then f_logintime else null end) as f_logintime -
max(case when f_event = 0 then f_logintime else null end) as f_logintime,
from ta
group by f_loginid,f_name
慧龙照片恢复软件是一个特殊的数据恢复工具,专门用于恢复误删除、格式化、文件系统错误、分区打不开等造成的照片文件丢失;支持硬盘、光盘、U盘、MP3、数码相机、手机、存储卡等存储介质。支持FAT、FAT32、NTFS、CDFS等各种分区格式,但不能恢复在NTFS分区中压缩存储的文件,也不能恢复加密的文件。全盘扫描查找照片数据,不放过任何一个可恢复的照片文件。   慧龙照片恢复软件在恢复文件过程中不会往源分区写入数据,因此可保证不会对源数据造成再次损害,可放心使用。软件还支持从磁盘映像文件中恢复照片文件,方便进行异地数据恢复,软件本身也具有制作磁盘映像文件的功能。   本软件目前仅支持恢复JPG格式的照片文件(更多文件格式正在增加中),JPG格式是最流行的数码照片文件格式,绝大多数数码相机及拍照手机均采用该格式存储照片,因此慧龙照片恢复软件能胜任绝大多数照片文件的恢复任务,照片恢复的成功率也很高。   慧龙照片恢复软件会提取照片文件中的拍照时间,作为恢复出来的文件修改时间,方便恢复后对照片进行整理。只要在文件夹里选择按“修改时间”排序,照片就是按拍照的先后顺序排列了,非常方便。   提示: 不要下载软件到要恢复数据的盘符里,也不要解压文件到要恢复的盘符里,否则可能再次破坏源数据。如果是相机直接连接电脑进行数据恢复,请保证电池电量足够,免得恢复过程中耗完电了,下次又要重新扫描。   为什么选择慧龙照片恢复软件?与其他数据恢复软件相比,慧龙照片恢复软件具有以下特点:   1. 逐一扫描存储扇区,寻找照片数据,提高照片文件恢复成功率;   2. 使用超简单,鼠标点击几下即可开始恢复;   3. 体积小,下载快,绿色软件,无需安装,不会在系统里留下任何垃圾;   4. 不依赖于文件系统,即使目录区、文件分配表完全损毁也能进行恢复;   5. 支持从映像文件恢复照片,因而可完全避免反复扫描对源数据造成损害;软件本身也包含制作映像文件的功能。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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