Avatar billede bingokaj Nybegynder
29. oktober 2000 - 20:48 Der er 24 kommentarer og
1 løsning

Vis kun de 5 højeste ID\'er fra en database

Hej med jer

Jeg har et loop, som i øjeblikket viser alle poster fra en database vha. nedenstående kode:

<% SQLstmt = \"SELECT ID,Overskrift,Manchet FROM nyheder ORDER By ID\"%>
<% Set rs = conn.Execute(SQLstmt) %>
  <%
  x=0
  DO WHILE NOT rs.EOF
    x=x+1
    Recid = rs(\"ID\")
    Manchet = rs(\"Manchet\")
    overskrift = rs(\"Overskrift\")
    %>
            <b><%=overskrift%></b><br><%= Manchet %><br><div align=\"right\"><b>l&aelig;s mere...</b><a href=\"nyheder.asp?Actionvar=nyheder&Recid=<%=Recid%>\"><img src=\"knap-link.gif\" width=\"16\" height=\"11\" border=\"0\" alt=\"\"></a>&nbsp;&nbsp;&nbsp;&nbsp;</div><br><br>
  <%
          rs.MoveNext
          LOOP
          RS.Close
  %>


Jeg vil gerne vide hvordan jeg laver det så der kun vises de 5 nyeste (dvs. de 5 højeste ID-numre). Desuden vil jeg også gerne vide hvordan man laver det omvendt, så det er alt andet end de 5 nyeste der vises
Avatar billede geeeet Nybegynder
29. oktober 2000 - 20:49 #1
<% SQLstmt = \"SELECT top 5 ID,Overskrift,Manchet FROM nyheder ORDER By ID\"%>

/Geeeet
Avatar billede tdaugaard Nybegynder
29. oktober 2000 - 20:50 #2
5 nyeste mener jeg du skal bruge

SELECT TOP 5 FROM [resten af din SQL sætning]

den anden aner jeg ikke ..
Avatar billede bacardil Nybegynder
29. oktober 2000 - 20:50 #3
Sql = \"Select Top 5 * from adresse order by ID DESC\"
Avatar billede tdaugaard Nybegynder
29. oktober 2000 - 20:51 #4
Nå ja .. ZZZzz det der med ikke at sidde og sove når man svarer ;)
Avatar billede geeeet Nybegynder
29. oktober 2000 - 20:52 #5
tdaugaard >> :-)
bingokaj >> jeg springer desværre også spg2. over

/Geeeet
Avatar billede lorx.dk Nybegynder
29. oktober 2000 - 20:58 #6
>>så det er alt andet end de 5 nyeste der vises

Jeg er ikke sikker, men prøv med nedstående statement:

SELECT ID,Overskrift,Manchet FROM nyheder ORDER BY ID
WHERE NOT EXIST
(SELECT TOP 5 * FROM nyheder)

Det kræver, at din db understøtter subselects (access gør)
Avatar billede lorx.dk Nybegynder
29. oktober 2000 - 21:25 #7
SELECT ID,Overskrift,Manchet
FROM nyheder
WHERE NOT EXISTS
(SELECT TOP 5 * FROM nyheder)
ORDER BY id

Skal det self være, men æder din db det?


Avatar billede lorx.dk Nybegynder
29. oktober 2000 - 21:48 #8
Ellers kan du jo bare vælge alt, hoppe 5 frem, og starte med at udskrive :-)
Avatar billede ortrak Nybegynder
29. oktober 2000 - 21:49 #9
bacardil har givet svaret...

/ortrak
Avatar billede tdaugaard Nybegynder
29. oktober 2000 - 21:52 #10
<< ortrak >>

Eh ?

Det har geeeet også .. !?
Avatar billede geeeet Nybegynder
29. oktober 2000 - 21:52 #11
ortrak >> Nej han har ikke... Han sørger bare for at vælge de fem nederste istedet for de fem øverste...

/Geeeet
Avatar billede geeeet Nybegynder
29. oktober 2000 - 21:53 #12
tdaugaard >> jeg har kun svaret på halvdelen... men ellers har du ret :-)

/Geeeet
Avatar billede tdaugaard Nybegynder
29. oktober 2000 - 21:54 #13
<< geeeet >>

Nå, ja .. men det har både jeg selv og bacardil jo også kun ..
Avatar billede geeeet Nybegynder
29. oktober 2000 - 21:56 #14
si :-)

nå, nu tror jeg sq at jeg hopper af for i aften...
Hav det godt alle sammen, ses imorgen :-)

/Geeeet
Avatar billede bingokaj Nybegynder
31. oktober 2000 - 13:47 #15
-->> geeeet: din metode virker ikke, selvom jeg bruger Access2000 - det eneste jeg får med nedenstående SQL-streng er en tom side:

\"SELECT ID,Overskrift,Manchet FROM nyheder WHERE NOT EXISTS (SELECT TOP 5 * FROM nyheder)\"

Avatar billede geeeet Nybegynder
31. oktober 2000 - 13:48 #16
bingokaj >> det var ikke min, jeg ved desværre ikke svaret på sgp. 2

/Geeeet
Avatar billede dna Nybegynder
06. november 2000 - 18:39 #17
Man kan vist bruge noget med noget limit...! Jeg er ikke sikker..!
Avatar billede ortrak Nybegynder
07. november 2000 - 14:36 #18
geeeet, tdaugaard:
Kan vi ikke blive enige om at bacardil laver en order med \'desc\' - faldende. Dvs. de højeste id\'er først....


Mht. det andet spørgsmål:
Hvis allerede ved hvilke id\'er de 5 nyeste er(f.eks. 50,49,48,47,46), så kan du f.eks. gøre således:

select * from tabel where (NOT (ID IN (50,49,48,47,46)))


/ortrak

Avatar billede tdaugaard Nybegynder
07. november 2000 - 14:40 #19
<< ortrak >>

Sagtens .. !?
Avatar billede ortrak Nybegynder
07. november 2000 - 14:41 #20
eller:

select * from Tabel Where
(ID + 4 < (Select Max(ID) From Tabel))


/ortrak
Avatar billede ortrak Nybegynder
07. november 2000 - 14:43 #21
tdaugaard:

geeet skriver: ORDER By ID . Default er asc hvilket betyder at de laveste id\'er vil blive selected og ikke de højeste, som er meningen.


/ortrak
Avatar billede tdaugaard Nybegynder
07. november 2000 - 14:46 #22
<< otrak >>

ZZZZZzzzzz ... jeg sidder og halvsover (as usual ..) ;o)

Avatar billede ortrak Nybegynder
07. november 2000 - 14:48 #23
fair nok :-]

Det er det gode ved branchen - man fakturerer alligevel kunden selvom man sover...


/ortrak
Avatar billede bingokaj Nybegynder
09. november 2000 - 15:12 #24
Nedenstående virker efter hensigten - tak ortrak!

select * from Tabel Where
(ID + 4 < (Select Max(ID) From Tabel))

Avatar billede ortrak Nybegynder
09. november 2000 - 15:18 #25
you\'re welcome

/ortrak
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