求助一条sql查询语句

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:24:17
有这么一个问题求助一下:
有两个表:
一个用户表user(userid,username,userType,......)
一个用户登陆表loginLog(logid,userid,logintime,......)
loginLog表记录了用户每次的所有登陆信息

我需要一条sql语句实现从当天开始 最近30天没有登陆过的用户列表

问题说明:如果能够实现以下功能再追加50分
对用户分类型,
userType = 1 ,30天未登陆
userType = 2 ,90天未登陆
userType = 3 ,180天未登陆

也是需要一条sql语句实现 对应用户类型在对应天数里 没有登陆过的用户列表
logintime 为datetime型
数据库为sql server2000,大家最好对这两个问题分开回答

因为这是根据用户类型而有不同的时间差,而不是不同的时间差来分类型

select TO1.userid,
TO1.username,
TO1.userType,
TO2.logintime
from user TO1
left join loginLog TO2
on TO2.userid = To1.userid
and TO2.logintime >= /*:*/'30'/*:*/
where 1 = 1
order by TO1.userid
在这里你应该在关联的时候对usertype进行设定!使userType = 1 ,30天未登陆 userType = 2 ,90天未登陆 userType = 3 ,180天未登陆!这个问题具体的实现方法是在返回客户端或者处理的服务端的时候写的!
如果可以的话我建议你用以下的PL/SQL代码:
CREATE OR PEPLACE ***
( USER_ID OUT CHAR,
USER_NAME OUT CHAR,
TYPE OUT CHAR,
TIME IN NUMBER
)IS
BEGIN
IF(logintime >= '30' && logintime < '90')
SEIECT
TO1.userid,
TO1.username,
TO2.logintime - (logintime - '1')
INTO
USER_ID,
USER_NAME,
TYPE
FROM user TO1
LEFT JOIN
loginLOG TO2
ON TO2.userid