Table Schema
(
DeviceLogId int
DeviceId int
UserId int
LogDate datetime
)
表格数据
112 25 66 2015-07-22 11:02:15.000
332 25 66 2015-07-22 17:29:25.000
555 25 88 2015-07-23 19:09:35.000
779 25 67 2015-07-24 16:23:49.000
1003 29 17 2015-07-18 13:03:04.000
我想输出
Intime Outtime logdate Incount OutCount
2015-01-01 10:22:29.000 2015-01-01 19:58:43.000 2015-01-01 7 11
2015-01-02 09:52:26.000 2015-01-02 20:25:25.000 2015-01-02 2 2
我创建了一个用户ID的查询工作,但是如果我想要多个用户ID
select e.Intime,e.Outtime,e.logdate,e.Incount,e.OutCount from
(
select a.intime as Intime,b.outtime as Outtime,c.logdate,c.InCount as Incount,d.OutCount as OutCount from
(
select min(logdate) intime,cast(LogDate as date) logdate,userid
from DeviceLogs where deviceid in (26,31) and cast(LogDate as date) between '2015-01-01' and '2015-01-02' and UserId=7
group by cast(LogDate as date), UserId
)a inner join
(
select max(logdate) outtime,cast(LogDate as date) logdate,userid from DeviceLogs
where deviceid in (25,30) and cast(LogDate as date) between '2015-01-01' and '2015-01-02' and UserId=7
group by cast(LogDate as date), UserId
) b on a.logdate = b.logdate
left join
(
select UserId, cast(LogDate as date) logdate ,count(DeviceLogId) as InCount from DeviceLogs
where deviceid in (26,31) and cast(LogDate as date) between '2015-01-01' and '2015-01-02' and UserId=7
Group by UserId, cast(LogDate as date)
)c on b.logdate = c.logdate
left join
(
select UserId, cast(LogDate as date) logdate ,count(DeviceLogId) as OutCount from DeviceLogs
where deviceid in (25,30) and cast(LogDate as date) between '2015-01-01' and '2015-01-02' and UserId=7
Group by UserId, cast(LogDate as date)
)d on c.logdate = d.logdate
)e
所以我想获取所有用户数据。 等待回复
我想检索所有用户数据并使用网格绑定 性能更佳
答案 0 :(得分:0)
我真的不明白你对min()max()的推理。也许你想在这段时间内显示第一次/最后一次登录?
希望它有所帮助:select
min(intime) min_intime,
min(outtime) min_outtime,
min(logdate) min_logdate,
max(intime) max_intime,
max(outtime) max_outtime,
max(logdate) max_logdate,
count(*) [tot],
userid
from devicelogs
where logdate between '01-01-2000' and '01-01-2001'
group by userid
答案 1 :(得分:0)
我希望这会对你有所帮助。
name