用存储过程来实现一天中登陆系统员工的接打电话量:首先要查出当天所有登陆系统员工的登陆时间和uid(员工一天中可多次登陆系统)。然后根据登陆时间和uid到另张表中查询登陆时间内该员工的接打电话量。问题是怎样保存查询出员工的登陆时间和uid,并根据登陆时间和uid查询电话量?
涉及:声明临时表、镶嵌子查询、关联表。
首先、需求是查询出特定人登录后的电话量。电话量是一个数字。确定目标 :电话记录表
select count(*) from 电话记录表 where uid=登录人 and 接听时间>=登录起始时间 and 接听时间<=登录结束时间
其次,登录人、登录时间、登录结束时间。是结果查询的必要条件。 所以可以用临时表、或者直接子查询来确定查询的目标的三项信息。
declare @user int ,@登录时间 datetime,@登录结束时间 datetime
select @user=登录人,@登录时间=登录时间,@登录结束时间=登录结束时间 from 登录记录表 where 登录人ID=参数
如果是一组人的电话量,那就直接在电话信息表中 查询后添加Group by user 来得到 一组数据。
最好给出数据,和想要的结果
猜的,不知道是不是这个意思
select a.uid,b.接打电话量 from user_LoginLog a left join user_telephone b on a.uid = b.uid and a.LoginTime = b.LoginTime where CONVERT(varchar, a.LoginTime, 112 ) = CONVERT(varchar, getdate(), 112 )
保存提供5种方法:
1. 正式表.
2. 临时表 #tempTable
3. 表变量 @EmployeeTable
4. 子查询
5. CTE