webForumDet fria alternativet

Vilka har inte varit inloggade på länge?

Databaser & SQL

4 svar · 292 visningar · startad av hawkman

Medlem sedan juni 2000125 inlägg
Frågan#1

Hej,

Har en tabell med fälten Logid|User|LoginDate. I den sparas inloggningar till mitt system, dvs en användare finns på många rader.

Jag vill kunna ställa en fråga där jag ser vilka användare som inte har varit inloggade på t ex 30 dagar.

Kan man göra det i en fråga eller? :q
Eller måste man först ta reda på respektive användares senaste inloggningsdatum och sedan kolla om det har gått mer än 30 dagar...

Hälsningar
Håkan

Medlem sedan dec. 200012 464 inlägg
#2
select user
from t
group by user 
having max(logindate) < current_date - interval '30' day

user är inget bra kolumnnamn då det är ett reserverat ord i SQL.

Medlem sedan juni 2000125 inlägg
#3

Hej,

Tack för snabbt svar...! Namnen var bara exempel. Jag glömde skriva att jag kör MSAccess... :r

Kan detta vara rätt i MSAcces:

select LTAUser
from LTAUserLogger
group by LTAUser
having DATEDIFF('d', max(LoginDate), now()) < 30

Verkar returnera ett rimligt resultat...
Hur gör jag om jag vill ha med LoginDate också?

select LTAUser,LoginDate 
...

/Håkan

Medlem sedan dec. 200012 464 inlägg
#4
select LTAUser,max(loginDate) as lastLogin
from LTAUserLogger
group by LTAUser
having DATEDIFF('d', max(LoginDate), now()) < 30
Medlem sedan juni 2000125 inlägg
#5

Yepp! Tack!

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)