Avatar billede psyclown Nybegynder
26. februar 2002 - 14:38 Der er 16 kommentarer og
1 løsning

forum

Hvordan strækker jeg de 2 nyeste poster ud fra 2 tabeller, sammenligner datoen og ser hvad for en dato der er den nyeste ?
Avatar billede joeblack Nybegynder
26. februar 2002 - 14:40 #1
er tabellerne joinet ?
Avatar billede robin-steen Nybegynder
26. februar 2002 - 14:42 #2
hvis du giver posterne en id der har autonummerering kan du bare trække de to nyeste poster ud ved at se på deres id!
Avatar billede coltau Juniormester
26. februar 2002 - 14:43 #3
Denne SQL-sætning kan anvendes til at finde den record hvor dato er nyeste:
sql = "select top 1 * from tabelnavn order by dato desc"
Set RS = conn.Execute(sql)

Denne sætning kan finde de to nyeste:
sql = "select top 2 * from tabelnavn order by dato desc"
Set RS = conn.Execute(sql)

RS("dato") ' er dato på nyeste
RS.MoveNext
RS("dato") ' er dato på næst nyeste
Avatar billede coltau Juniormester
26. februar 2002 - 14:44 #4
Sorry jeg så ikke at det var to tabeller.
Avatar billede robin-steen Nybegynder
26. februar 2002 - 14:45 #5
nice work så blev jeg også det klogere ;o)
det sidste hvad betyder det? desc
Avatar billede coltau Juniormester
26. februar 2002 - 14:46 #6
Set RS1 = conn.Execute("select top 1 * from tabel1 order by dato desc")
Set RS2 = conn.Execute("select top 1 * from tabel2 order by dato desc")

Så har du de to nyeste fra hver tabel.
Avatar billede joeblack Nybegynder
26. februar 2002 - 14:46 #7
Hvis ikke så må du lave 2 * SQL:

SELECT TOP 1 tabel1.dato1 FROM tabel1 ORDER BY tabel1.dato1 DESC;
og
SELECT TOP 1 tabel2.dato2 FROM tabel2 ORDER BY tabel2.dato2 DESC;

og sammenligne datoerne:

If rs(dato1) > rs(dato2) then
msgbox("Dato 1 er højst....
Else
msgbox("Dato 2 er højst
End if
Avatar billede robin-steen Nybegynder
26. februar 2002 - 14:48 #8
hvad betyder DESC
Avatar billede joeblack Nybegynder
26. februar 2002 - 14:48 #9
Du er hurtig coltau...

Desc betyder descenting = faldende
Avatar billede coltau Juniormester
26. februar 2002 - 14:48 #10
Desc betyder sorteret bagfra. Når man vælger en sortering i sql med "order by" så får man den mindste record først. I di ttilfælde vil du jo have den højeste først. (Senetset dato)
"top 1" betyder at man bare vil have den ene record.
Avatar billede coltau Juniormester
26. februar 2002 - 14:49 #11
Hurtig betyder mange stavefejl. :-)
Avatar billede robin-steen Nybegynder
26. februar 2002 - 14:50 #12
det var sgu smart! ;o) man lærer noet nyt hver dag!
Avatar billede psyclown Nybegynder
26. februar 2002 - 14:54 #13
coltau, det var også næsten det jeg havde tænkt mig at gøre først, men jeg viste ikke om det var rigtigt, så jeg ville lige spørge først.
Jeg skal lige hjem, så prøver jeg det af også skal du nok få dine point...hvis det virker self. :)
Avatar billede psyclown Nybegynder
26. februar 2002 - 16:45 #14
Det virker sq fint nok, men jeg kan ikke få det flettet ordenligt ind i mit eget script.

SQLLASTDATE1 = "SELECT TOP 1 F_Treads.T_Date FROM [F_Treads] WHERE (FID = "& rsForum("ID") &") ORDER BY F_Treads.T_Date DESC"
Set rsLastDate1 = forumtemp.execute(SQLLASTDATE1)
SQLLASTDATE2 = "SELECT TOP 1 F_Replies.R_Date FROM [F_Replies] ORDER BY F_Replies.R_Date DESC"
Set rsLastDate2 = forumtemp.execute(SQLLASTDATE2)
SQLLASTPOSTER1 = "SELECT TOP 1 F_Treads.T_Alias FROM [F_Treads] WHERE (FID = "& rsForum("ID") &") ORDER BY F_Treads.T_Alias DESC"
Set rsLastPoster1 = forumtemp.execute(SQLLASTPOSTER1)
SQLLASTPOSTER2 = "SELECT TOP 1 F_Replies.R_Alias FROM [F_Replies] ORDER BY F_Replies.R_Alias DESC"
Set rsLastPoster2 = forumtemp.execute(SQLLASTPOSTER2)

If (rsLastDate1.BOF Or rsLastDate1.EOF) Then
LastPost = "No posts"
Else
If rsLastDate1("T_Date") > rsLastDate2("R_Date") Then
    LastDate = rsLastDate1("T_Date")
Else
    LastDate = rsLastDate2("R_Date")
End If
If rsLastPoster1("T_Alias") > rsLastPoster2("R_Alias") Then
    LastPoster = rsLastPoster1("T_Alias")
Else
    LastPoster = rsLastPoster2("R_Alias")
End If
LastPost = ""& LastDate &"<br>"& LastPoster &""
End If

Den finder godt nok den nyeste dato, men den skriver den nyeste dato ved alle forums'ne der er skrevet noget i...det skal den jo ikke, det siger jo sig selv. Den finder heller ikke det nyeste Alias ordenligt.

Håber du kan hjælpe med mit lille problem her.
Avatar billede coltau Juniormester
27. februar 2002 - 10:07 #15
Jeg kan ikke gennemskue hvad det er du vil. Det her forstår jeg.
Du har to tabeller, F_Treads og F_Replies er det spørgsmål og svar i et forum. ?
Og du vil blot vise det nyeste indlæg - hvad enten det er et spørgsmål eller et svar. ?
Avatar billede psyclown Nybegynder
27. februar 2002 - 17:34 #16
F_Treads og F_Replies indeholder spørgsmål og svar fra forumet og jeg vil vise det nyeste indlæg og den sidste der har postet.
Avatar billede psyclown Nybegynder
01. marts 2002 - 04:17 #17
må, men f*ck det, jeg skal nok finde ud af det og du skal self. have dine point, for din hjælp.
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