okay.. jeg skal bruge det til at udtrække de tre nyeste rækker i en database - efter datoen de er indtastet (eller de tre højste auto_id), men kan ikke bruge SELECT TOP 3, da de ikke skal være samme sted på siden.. så jeg skal bruge et udtryk til hver af de tre rækker.. :-) håber du forstår hvad jeg søger efter :-)
Det burde da være muligt at lægge dit resultat i en variabel og trække dem ud hvor du har lyst. (det kan det ihvertilfælde i PHP, hvad bruger du?), og så som du selv foreslår bruge TOP Noget lignene:
SELECT TOP 3 id AS topID FROM [tabel] ORDER BY id DESC
Jeg kender ikke ASP, men bruger PHP (jeg tror ikke forskellen er så stor) Sådan her ville jeg gøre i PHP:
$sql = "SELECT TOP 3 id AS topID FROM [tabel]ORDER BY id DESC";
$result = mssql_query ( $sql ); (det første resultat): $row = mssql_fetch_array ( $result ); (Nu har du så $row, der indeholder et array med den første linie i resultatet) $row = mssql_fetch_array ( $result ); (Nu indeholder $row den anden linie i resultatet)
Uden at ligge hovedet på blokken, vil jeg mene at der må være lignene funktioner i ASP.
Jeg kigger stadig på at lave tre querys, hvis det er det du gerne vil have. De bliver dog lige lovlige lange i forhold til hvad jeg mener de skal være.
jah.. jeg sidder også lige og prøver mig lidt frem.. det hjælper nogen gange.. men jah det mest simple vil jo være hvis jeg havde tre seperate SQL sætninger, hvor de hver især giver en række - henholdsvis nr 1, 2 og 3 :-)
SELECT * FROM tabel WHERE id = (SELECT TOP 1 id AS topId FROM tabel ORDER BY id DESC) ----- Denne giver hele rækken med det 2. højeste id
SELECT * FROM tabel WHERE id = (SELECT TOP 1 id AS topId FROM tabel WHERE id IN (SELECT TOP 2 id AS topId FROM tabel ORDER BY id DESC) ORDER BY id ASC) ----- Denne giver hele rækken med det 3. højeste id
SELECT * FROM tabel WHERE id = (SELECT TOP 1 id AS topId FROM tabel WHERE id IN (SELECT TOP 3 id AS topId FROM tabel ORDER BY id DESC) ORDER BY id ASC)
Håber dette kan bruges, og at du selv kan skifte ud i navne mm.
hej igen.. kunne alligevel ikke lade være med at prøve lidt endnu.. det du skrev virkede ikke, da den ikke gav nogle data.. men jeg skrev den lidt om og det her virker vist :-)
for anden sidst:
SELECT * FROM news WHERE news_id = (SELECT MIN(news_id) FROM news WHERE news_id IN (SELECT TOP 2 news_id FROM news ORDER BY news_id DESC))
for 3. sidst:
SELECT * FROM news WHERE news_id = (SELECT MIN(news_id) FROM news WHERE news_id IN (SELECT TOP 3 news_id FROM news ORDER BY news_id DESC))
Selv tak. Det er samme princip du bruger. Men min virker altså i Query Analyzer, den er skam testet.
Din er faktisk lidt mere elagant, så tillykke.
Synes godt om
Ny brugerNybegynder
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.