Avatar billede larserik Nybegynder
11. juni 2003 - 21:56 Der er 15 kommentarer og
1 løsning

sql query

hei

jeg har en spørring som ser slik ut:

SQL1 = "SELECT TOP 10 * FROM News where newstype = 0 order by controlpoint desc"

jeg vil ha ut alle postene mellom 10 og 20, er det mulig?

altså, noe sånt som dette:

SQL1 = "SELECT BETWEEN 10 AND 20 * FROM News where newstype = 0 order by controlpoint desc"

:-)
Avatar billede netro Nybegynder
11. juni 2003 - 21:57 #1
Hvis det er MySQl kan du trække dem ud således:

SQL1 = "SELECT TOP 10 * FROM News where newstype = 0 order by controlpoint desc Limit 10, 10"
Avatar billede medions Nybegynder
11. juni 2003 - 21:58 #2
strSQL = "SELECT * FROM nyheder WHERE ID NOT IN (SELECT TOP 7 ID FROM nyheder ORDER BY dato DESC) ORDER BY dato DESC"

//>Rune
Avatar billede dk_akj Nybegynder
11. juni 2003 - 21:58 #3
du kan lave en select i select
SQL1 = "SELECT TOP 20 * FROM News where newstype = 0 and id not in (select top 10 id from news order by controlpoint desc) order by controlpoint desc"


altså de første 20 undtaget de første 10.

//akj
Avatar billede netro Nybegynder
11. juni 2003 - 21:58 #4
SQL1 = "SELECT TOP 10 * FROM News where newstype = 0 Where ID Between 10 And 20 order by controlpoint desc"
Avatar billede netro Nybegynder
11. juni 2003 - 22:00 #5
medions -> Hvis databasen understøtter subqueries, ja.
Avatar billede medions Nybegynder
11. juni 2003 - 22:03 #6
netro> Øhh ja, men dit eksempel virker da oxo kun hvis databasen er en MySQL da du bruger LIMIT!

//>Rune
Avatar billede tipsen Nybegynder
11. juni 2003 - 22:05 #7
spørgsmålet kan jo bare ikke besvares inden vi en database type, da ingen af svarene er standard (ANSI) SQL!
Avatar billede larserik Nybegynder
11. juni 2003 - 22:08 #8
Det er en Access database.. problemet er: øverst på siden har jeg 10 nyheter. Så vil jeg ha en liste under som viser de 10 neste nyhetene.. slik det er nå så må jeg lage en spørring på 20 nyheter på den listen som er nederst, da vises 10 gamle nyheter i tillegg til de nye.
Avatar billede medions Nybegynder
11. juni 2003 - 22:10 #9
Tror du skal kigge på noget Pageing i stedet for:

http://activedeveloper.dk/aspdigital/kapitel2/paging.asp

//>Rune
Avatar billede netro Nybegynder
11. juni 2003 - 22:12 #10
medions -> Det skriver jeg da også højt og tydeligt :)
Avatar billede larserik Nybegynder
11. juni 2003 - 22:21 #11
medions: det paging scriptet så bra ut. Hvis jeg går inn på paging.asp så skriver den ut første siden som default. Hvordan kan jeg få det til å skrive ut Page 2 som default i stedet.. da tror jeg at jeg har funnet løsningen!
Avatar billede spiff_21 Nybegynder
11. juni 2003 - 22:21 #12
Du kan lage en subquery der, hvor du sørger for at de første 10 ikke indgår
Altså noget i denne stil

SELECT TOP 10 Id, Name
FROM Vare
WHERE Id Not In (SELECT Top 10 Id FROM Vare)

Alt efter hvordan felterne ligger i databasen er det multigt at du skal have en ORDER BY på SQL sætningen
Avatar billede netro Nybegynder
11. juni 2003 - 22:22 #13
Du kan også anvende følgende:


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & ("..\..\db.mdb")
Conn.Open DSN

SQL = "Select ...................................."

Page = Trim(Request("page"))
If Page = "" Then Page = 1

Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = adOpenStatic
rs.Open(SQL), Conn

' ANTAL RECORDS PÅ HVER SIDE
rs.PageSize = 10

rowCount = 0

If Not rs.EOF Then rs.AbsolutePage = cINT(Page)

While Not rs.EOF And rowCount < rs.PageSize
  Response.Write rs("Felt")
  rowCount = rowCount + 1
  rs.MoveNext
Wend

If rs.PageCount > 1 Then
  Response.Write "Gå til side: "
  For i = 1 To rs.PageCount
      Response.Write "<a href='din_side.asp?page=" & i & "'>" & i & "</a> "
  Next
End If

rs.Close
Conn.Close
Set Conn = Nothing
Avatar billede larserik Nybegynder
11. juni 2003 - 22:31 #14
Jeg fant det ut :) Takk for alle svar!

Jeg endret følgende:

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 2 <-------- satt denne fra 1 til 2 og da viste den selv. page 2 som default
End If
Avatar billede medions Nybegynder
11. juni 2003 - 22:32 #15
Fair nok...
Thx 4 Poinz

//>Rune
Avatar billede netro Nybegynder
11. juni 2003 - 22:39 #16
Så lidt da ;)
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