■■■两个表连接 求得60天差记录的SQL语句■■■

fanqingfeng 2005-03-02 11:08:51
客户表 Cilent:

CID(客户编号) CNAME(客户名称) RTIME(注册时间)
----------------------
1001 张三 2004-11-12 15:25:23
1002 李四 2004-11-15 23:56:14
1003 王五 2004-11-23 12:20:33
1004 刘六 2004-12-1 11:55:20
。。。。

客户登陆记录表 Log:
LTIME(登陆时间) CID(客户编号) IP(登陆IP)
-----------------------
2005-1-1 12:35:58 1001 192.168.168.1
2005-1-1 12:46:20 1001 192.168.168.22
2005-2-1 15:14:33 1003 202.116.11.11
2005-2-2 22:20:40 1001 210.22.56.22
。。。。。

我想得到的结果是:
距今天至少有60天没有登陆的用户记录,注册时间当作是第一次登陆

CID(用户编号) CNAME(客户名称)
-----------------------



谢谢






...全文
121 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsj20041004 2005-03-02
  • 打赏
  • 举报
回复
select C.cid,C.cname from (select A.cid,min(A.cname),isnull(max(B.LTIME),max(rtime)) maxtime from cilent A left join log B on A.cid=B.cid group by cid) C
where datediff(d,C.maxtime,getdate())>60
xluzhong 2005-03-02
  • 打赏
  • 举报
回复
select cid,cname
from(
select a.cid,a.cname,a.rtime,b.ltime
from client a
left join (select cid,max(ltime) as ltime from log group by cid) b
on a.cid=b.cid)t
where datediff(d,isnull(ltime,rtime),getdate())>60
子陌红尘 2005-03-02
  • 打赏
  • 举报
回复
select
a.*
from
Cilent a
where
not exists(select 1 from Log where cid = a.cid and datediff(d,LTIME,getdate())<=60)
tomorrowMoon 2005-03-02
  • 打赏
  • 举报
回复
select *
from Client
where datediff(day,
isnull((select max(LTIME) from log where CID=Client.CID),RTIME),
getdate())>60

34,837

社区成员

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

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