Re: [SQL ] 求最新的密碼變更日期和活躍用戶
以下SQL應該可以滿足你的需求
select TB_USER.id,max(TB_USERPWDHISTORY.createdat)
from TB_USER
left join TB_USERPWDHISTORY on TB_USER.id=TB_USERPWDHISTORY.id
where TB_USER.status=1
group by TB_USER.id
having max(TB_USERPWDHISTORY.createdat) < sysdate-90
createdat+90 > sysdate會有問題,為什麼有問題,你可以再想想
※ 引述《ntpuisbest (阿龍)》之銘言:
: (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
: 資料庫名稱: oracle
: 資料庫版本:18.1.0
: 內容/問題描述:
: 我有兩張表,以下是他們的table name還有對應的column
: 1. TB_USER
: id username email password status
: 2. TB_USERPWDHISTORY
: id userid password creatdate
: 第二張表會記錄user 更改密碼的歷史,每次更動都會記錄進去
: 所以同一個userid可能會有多筆紀錄在第二章表中
: 並且第二張表的userid 是 foreign key
: 我的商業邏輯如下,
: 想要抓出 距離現在(sysdate)最近一次更改密碼的日期
: 超過90天都未更改
: 並且status=1 的用戶們
: 的user有誰,他們對應的
: username userid 以及 他們的email
: 來寄信
: 我自己嘗試組過
: select userid,max(creatdat) from
: TB_USERPWDHISTORY WHERE creatdat+90> sysdate
: group by userid
: 好像where 放錯位置
: 並且也沒有跟 user 去做leftjoin
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.234.37.8 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1648387366.A.CD4.html
推
03/27 22:14,
2年前
, 1F
03/27 22:14, 1F
推
03/27 23:42,
2年前
, 2F
03/27 23:42, 2F
→
03/27 23:42,
2年前
, 3F
03/27 23:42, 3F
→
03/27 23:42,
2年前
, 4F
03/27 23:42, 4F
→
03/28 06:19,
2年前
, 5F
03/28 06:19, 5F
推
03/28 08:58,
2年前
, 6F
03/28 08:58, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章