Avatar billede cotus Nybegynder
01. april 2008 - 17:18 Der er 8 kommentarer og
1 løsning

Hente næstnyeste og tredjenyeste post

Jeg kender til kommandoen top 1 * from .. Men hvordan får jeg den næstnyeste post frem? Og den tredjenyeste?

På forhånd tak.
Avatar billede keysersoze Guru
01. april 2008 - 17:21 #1
select top 2 * from tabel where id not in (select top 1 id from tabel)
Avatar billede cotus Nybegynder
01. april 2008 - 17:26 #2
Altså:

strSQL = "SELECT TOP 2 * FROM nyheder WHERE type = '2' AND id NOT IN (SELECT TOP 1 id FROM nyheder) ORDER BY dato DESC"
Avatar billede cotus Nybegynder
01. april 2008 - 17:47 #3
Og for at få den tredje-nyeste ?

strSQL = "SELECT TOP 3 * FROM nyheder WHERE type = '1' AND id NOT IN (SELECT TOP 2 id FROM nyheder) ORDER BY dato DESC"
                                               
Begge sætninger giver mig samme post :S
Avatar billede keysersoze Guru
01. april 2008 - 17:58 #4
sortering, where osv skal følge begge selects - fx

strSQL = "SELECT TOP 2 * FROM nyheder WHERE type = 2 AND id NOT IN (SELECT TOP 1 id FROM nyheder WHERE type = 2 ORDER BY dato DESC) ORDER BY dato DESC"
Avatar billede cotus Nybegynder
01. april 2008 - 23:06 #5
Jeg får følgende fejl:
Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

Default.asp, line 70

Min kode ser ud som følger:

<%
                                                Set rs = Server.CreateObject("ADODB.RecordSet")
                                                Set Conn = Server.CreateObject("ADODB.Connection")
                                                strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("-----------.mdb")
                                                Conn.Open strDSN
                                               
                                                strSQL = "SELECT TOP 2 * FROM nyheder WHERE type = 1 AND id NOT IN (SELECT TOP 1 id FROM nyheder WHERE type = 2 ORDER BY dato DESC) ORDER BY dato DESC"
                                               
                                                Set rs = Conn.Execute(strSQL)
                                                If Not (rs.BOF Or rs.EOF) Then
                                                    Do While Not rs.EOF
                                                    strId = rs("id")
                                                    strOverskrift = rs("overskrift")
                                                    strLilleBillede = rs("lille_billede")
                                                    strStortBillede = rs("stort_billede")
                                                    strIndhold = rs("indhold")
                                                    strForfatter = rs("forfatter")
                                                    strDato = rs("dato")
                                                    rs.MoveNext
                                                    Loop
                                                Else
                                                    Response.Write "Der findes ingen gamle topnyheder"
                                                End If
                                               
                                                rs.Close
                                               
                                                Conn.Close
                                                set rs = Nothing
                                                set Close = nothing
                                                set Conn = nothing
                                               
                                                Indhold_trim = Left(strIndhold,120)
                                            %>


Hvor Set rs = Conn.Execute(strSQL) er linie 70
Avatar billede keysersoze Guru
01. april 2008 - 23:35 #6
strSQL = "SELECT TOP 2 * FROM nyheder WHERE type = '1' AND id NOT IN (SELECT TOP 1 id FROM nyheder WHERE type = '2' ORDER BY dato DESC) ORDER BY dato DESC"

Er type ikke et tal?
Avatar billede cotus Nybegynder
01. april 2008 - 23:46 #7
Det kan du selvfølgelig have ret i :) Nu virker det... tusind tak.
Opret lige et svar.
Avatar billede keysersoze Guru
02. april 2008 - 17:56 #8
svar :)
Avatar billede keysersoze Guru
15. maj 2008 - 12:57 #9
lukketid?
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