Avatar billede locturian Nybegynder
11. januar 2005 - 13:26 Der er 14 kommentarer

Vælg dato range

Hej,

Normalt ligger det ikke til mig at søge ASP hjælp, da jeg nu plejer at lave det selv ;)

Men i dette tilfælde har det drillet mig tilstrækkeligt nok til, at jeg vil se om der er andre der lige kan se fidusen og har et tip... :)

Here goes...

Jeg har en tabel, men en hulens masse bruger logins - Tabellen hedder UserLogins

Jeg skal bruge alle logins der ikke er logget ind de sidste 30 dage - Min SQL sætning ser således ud:

StrSQL = "SELECT DISTINCT UserID FROM UserLogins WHERE Date < '12-12-2004 12:45:30'"

Jeg troede egentlig det virkede, men problemet vist at den ikke lister dem rigtigt når dem hiver dem ud?

Mit spørgsmål lyder så på, hvordan får jeg hevet ud efter DISTINCT UserID men stadig får sorteret efter dato, så den kun hiver en unik user ud, men stadig for den nyeste dato ?

Gode point, fordi at det går mig på nerverne :)
Avatar billede fennec Nybegynder
11. januar 2005 - 13:34 #1
"Date" være et reserveret ord. Derfor skal det måske i [], men det kommer and på hvilken database du bruger:
StrSQL = "SELECT DISTINCT UserID FROM UserLogins WHERE [Date] < '12-12-2004 12:45:30'"

Er Date kolonnen også oprettet som en dato type, og ikke som tekst?
Avatar billede fennec Nybegynder
11. januar 2005 - 13:34 #2
.."Date" KAN være et...
Avatar billede locturian Nybegynder
11. januar 2005 - 13:44 #3
1. Ja, ved godt at Date kan være et reserveret ord

Jeg regner med at problemet er følgende:

Jeg har 10 bruger logins fra fra samme bruger i en periode, fx:

[brugerID 200] 12-12-2004 12:45:30
[brugerID 200] 11-12-2004 12:45:30
[brugerID 200] 10-12-2004 12:45:30
[brugerID 200] 09-12-2004 12:45:30
[brugerID 200] 08-12-2004 12:45:30
osv...

Jeg fortæller den, at den kun skal tage EN af dem, men ikke om det er den nederste eller øverste post...
Avatar billede fennec Nybegynder
11. januar 2005 - 13:50 #4
Er det ikke lige meget hvilken post det er??
Skal du ikke bare vide hvilke brugere der har være logget ind inden for sidste måned??

Ellers må du lige forklare hvad der skal ske...
Avatar billede locturian Nybegynder
11. januar 2005 - 14:02 #5
Det er ikke lige meget.... Lad mig forklare....

Lad os sige at den fanger denne her på DISTINCT:

[brugerID 200] 08-12-2004 12:45:30

Så findes den her også:

[brugerID 200] 12-12-2004 12:45:30

Og dermed "tror" den at han ikke har været logget ind siden den periode.
Avatar billede Jman Praktikant
11. januar 2005 - 14:11 #6
hmm .. er det ikke fordi du skal have en order by ind...
StrSQL = "SELECT DISTINCT UserID FROM UserLogins WHERE [Date] < '12-12-2004 12:45:30' order by [DATE] desc;"
Avatar billede locturian Nybegynder
11. januar 2005 - 14:24 #7
Jeg kan ikke lave en order by Date når jeg ikke vælger date i min Select statement :) - Det er næsten selvsagt.. :)
Avatar billede fennec Nybegynder
11. januar 2005 - 14:35 #8
Jeg er ikke helt med på hvad "UserID" og "Date" indeholder. Er det noget i denne stil:

UserID: "[brugerID 200] 12-12-2004 12:45:30"
Dato  : "12-12-2004 12:45:30"

For så bliver det meget svært (næsten umuligt) at lave...
Avatar billede locturian Nybegynder
11. januar 2005 - 14:40 #9
Nej nej :)

UserID = 200
Dato = 12-12-2004 12:25:30
Avatar billede Jman Praktikant
11. januar 2005 - 14:51 #10
StrSQL = "SELECT (DISTINCT UserID), date FROM UserLogins WHERE [Date] < '12-12-2004 12:45:30' order by [date] desc;"
?
Avatar billede fennec Nybegynder
11. januar 2005 - 15:08 #11
Så det du vil have ud er altså den sidste dato hvor hver bruger har været logget på???

"select max(Dato), userID from UserLogins group by userID"

evt med en "while..." også.
Avatar billede hossein Nybegynder
12. januar 2005 - 18:49 #12
hej
Du skal anvende max for dato feltet som der blev sagt, så er der stadigvæk det andet prolem med >30 dags. Her skal du brug datediff funktionen i din loop, hvis du bruger f ex do while efter denne sætning skriver du en if sætning hvor du skriver ud de bruger som har ikke logget sig ind mere end 30 dage:
do while...
if diffdate("d", dato, now()) > 30 then
response.write...
...
end if

dette gælder oxo hvis du bruger msaccess.
Avatar billede locturian Nybegynder
29. september 2005 - 16:50 #13
Set i bakspejlet, var det godt nok et nubii spørgsmål, så jeg lukker pinligt det her spørgsmål, hvis nogen vil have point, så læg et svar... :)
Avatar billede fennec Nybegynder
30. september 2005 - 08:40 #14
nej tak.
.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester