Avatar billede henrik2000 Nybegynder
20. april 2001 - 12:06 Der er 8 kommentarer og
1 løsning

vis max fra database...

Hej!
Jeg har en side hvor jeg viser en række id`er og datoer, f.eks.
1  20-03-01
2  20-03-01

I databasen står der flere rækker med alle id`erne, bare med forskellige datoer ud for.

Jeg vil så gerne vise seneste dato udfor hvert id - foreløbig er jeg nået så langt:

Do while not rs.EOF

sqlSvar = \"SELECT K.* FROM mdl_indexeret_data K WHERE K.dato_ult_md IN (SELECT dato_ult_md = MAX(dato_ult_md) FROM mdl_indexeret_data)\"
Set rsSvar = conn.Execute(sqlSvar)

Do while not rsSvar.EOF %>
<%=rsSvar.Fields(\"instrumentid\")%>
<%=rsSvar.Fields(\"dato_ult_md\")%>

<%
rsSvar.MoveNext
Loop
           
rs.MoveNext
Loop
%>

Datoerne står i tabellen \"mdl_indexeret_data\", id=instrumentid og dato=dato_ult_md

Problemet her er at den nu viser alle id`erne med den seneste dato, men hvis jeg ændrer datoen ud for et af id`erne til en senere dato, så viser den kun den ene, fordi det nu er seneste dato. Jeg vil gerne vise seneste dato ud for alle id`erne, uanset hvilken dato det er!

Nogen der kan hjælpe med resten? Der skal vel laves en ekstra select-sætning, men den er vist lidt kringlet...




Avatar billede stigc Nybegynder
20. april 2001 - 12:09 #1
select max(dato_ult_md), max (id) FROM mdl_indexeret_data GROUP BY id
Avatar billede henrik2000 Nybegynder
20. april 2001 - 12:42 #2
det virker ikke. Jeg skal kun vise alle id`erne een gang, dvs.

1  19-03-01
2  18-03-01
3  19-03-01

I dette her tilfælde er den seneste/nyeste dato i rækken ud for id 1 og 3 19-03-01, og 18-03-01 ud for id 2.



Avatar billede proaccess Nybegynder
20. april 2001 - 12:56 #3
SELECT id, Max(dato_ult_md) as dato FROM mdl_indexeret_data GROUP BY id
Avatar billede henrik2000 Nybegynder
20. april 2001 - 13:15 #4
tak! det var sådan det skulle gøres!!!

Avatar billede stigc Nybegynder
20. april 2001 - 13:18 #5
lige ved og næsten...
Avatar billede henrik2000 Nybegynder
20. april 2001 - 13:28 #6
et tillægsspørgsmål:

hvis jeg nu skriver:

select max(dato_ult_md), max (id) FROM mdl_indexeret_data where id=1 GROUP BY id

- så kan man vælge en enkel dato, men hvordan sætter jeg denne her ind:

where id = \" & Request.QueryString(\"id\")

Denne går ikke syntaksmæssigt:

sql\"select max(dato_ult_md), max (id) FROM mdl_indexeret_data where id = \" & Request.QueryString(\"id\") GROUP BY id\"





Avatar billede proaccess Nybegynder
20. april 2001 - 13:49 #7
Du skal bruge HAVING i stedet for WHERE...

SELECT id, max(dato_ult_md) FROM mdl_indexeret_data GROUP BY id HAVING id = \" & Request.QueryString(\"id\")

Dette er ikke testet, men burde virke...
Avatar billede henrik2000 Nybegynder
20. april 2001 - 14:05 #8
den virkede ikke helt, men jeg fik denne her til at virke:
sql4 =\"SELECT kurs, MAX(dato) AS dato FROM daglige_fond_kurs WHERE id = \'\" & id & \"\' GROUP BY kurs ORDER BY dato DESC\"
Avatar billede henrik2000 Nybegynder
20. april 2001 - 14:08 #9
Ovenstående var lige til en anden tabel, derfor de nye navne!

Nu vi er i gang:

hvordan sætter jeg flere felter ind i ovenstående sql-statement? Dette her virker ikke:

sql4 =\"SELECT navn,id,kurs, MAX(dato) AS dato FROM daglige_fond_kurs WHERE instrumentid = \'\" & instrumentid & \"\' GROUP BY kurs ORDER BY dato DESC\"

jeg skal bruge navn og id et andet sted på siden.

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