2段SQL2005的SQL的比较

检索出现在未签出的分机

 

A:

select TblAgentSummary.StationDeviceID,TblAgentSummary.LoginDateTime,SubString(TblAgentSummary.AgentID,1,4) as AgentID  from
(select StationDeviceID,
Max(LoginDateTime) as LoginDateTime
 from TblAgentSummary where LogoutDateTime is null
and LoginDateTime >= CAST(getDate()-7 AS char(12))
group by StationDeviceid-- having  LoginDateTime = Max(LoginDateTime)
) a inner join TblAgentSummary on a.StationDeviceid = TblAgentSummary.StationDeviceid
and a.LoginDateTime = TblAgentSummary.LoginDateTime
order by TblAgentSummary.StationDeviceID desc

 

B:

 

select s.* from
tblAgentSummary s
inner join (
select max(LoginDateTime) LastTime,StationDeviceID
from tblAgentSummary
group by StationDeviceID ) a on a.LastTime = s.LoginDateTime and a.StationDeviceID = s.StationDeviceID
where logoutdatetime is null

 

的业务中 :

A 是先检索签出时间为NULL再MAX签入时间.

B 是先检索最后签入时间,再查询是否为NULL.

 

应该选择B.以兼容客户的非正常退出的情况.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值