Vill ta ut dom 8 senaste inlagda posterna i databasen. Av dom 8 stycken, vill jag sortera ut dom med det äldsta först, och senaste sist. Men jag lyckas inte?
strSQL = "SELECT TOP 8 * FROM tblFlog ORDER BY clmPosted ASC"
SET RS = Conn.execute(strSQL)
7 svar · 399 visningar · startad av M.Cheraghi
Vill ta ut dom 8 senaste inlagda posterna i databasen. Av dom 8 stycken, vill jag sortera ut dom med det äldsta först, och senaste sist. Men jag lyckas inte?
strSQL = "SELECT TOP 8 * FROM tblFlog ORDER BY clmPosted ASC"
SET RS = Conn.execute(strSQL)
Om clmPosted är datum kan du ju ändra till DESC iställer för ASC.
ORDER BY clmPosted DESC
Zaiman skrev:
Om clmPosted är datum kan du ju ändra till DESC iställer för ASC.
Det löser inte problemet - eftersom de nyaste posterna kommer först.
Jag hade gjort så här typ:
SELECT * FROM
(SELECT TOP 8 * FROM tblFlog ORDER BY clmPosted DESC)
ORDER BY clmPosted
edit: ett annat alternativ:
SELECT * FROM clmPosted
WHERE ID IN (SELECT TOP 8 ID FROM tblFlog ORDER BY clmPosted DESC)
ORDER BY clmPosted
(Om du nu har ett ID i tabellen - men det utgår jag ifrån.)
@nders skrev:
Det löser inte problemet - eftersom de nyaste posterna kommer först.
Ajdå.. Tur att du finns @nders.
Har du lust att förklara varför? Så jag inte stjälper nästa gång? :r
Öh - det är så DESC sorterar - högsta värdena först, därmed nyaste posterna eftersom det är datumfält.
I det här fallet vill vi alltså bara använda desc i urvalet för vilka 8 poster som ska hämtas - och egentligen inte för vilken sortering vi vill ha i resultatsetet.
OT
@nders skrev:
Öh - det är så DESC sorterar - högsta värdena först, därmed nyaste posterna eftersom det är datumfält.
I det här fallet vill vi alltså bara använda desc i urvalet för vilka 8 poster som ska hämtas - och egentligen inte för vilken sortering vi vill ha i resultatsetet.
:r Får nog lägga av för ikväll. Såklart det är så. Hjärnan verkar ha lagt av för dagen *sorry*
Tack @nders och alla andra! :bire