webForumDet fria alternativet

SQL Sats med asp (VB)?

4 svar · 407 visningar · startad av tomas21

tomas21Medlem sedan feb. 2003130 inlägg
#1

Hej allihop!

Jag har ett litet problem med SQL select som jag inte lyckats lösa.

Säg att jag har dessa rader i en databas. Siffran är id nummret (Counter).

23. Info
37. Info
38. Info
42. Info
44. Info
47. Info
49. Info
51. Info
52. Info
53. Info

Raderna ovan är exakt allting som finns i databasen. Varför id nummret inte är stigande beror på att fält har raderats med databasen (Access databas).

Det jag vill selecta är följande rader 49, 47, 44 och 42. Alltså de första fyra fälten förutom TOP 3. Har försökt ta senaste id nummret-3 och sedan selecta top fyra men det blir ju knas eftersom värdet blir helt fel om man tagit bort vissa fält så att ID nummret inte är stigande. Notera att ID värdena i detta fal är påhittade de kan vara helt annorlunda i verkligheten.

Hur ser SQL satsen ut för mitt problem?

@ndersMedlem sedan juni 200026 914 inlägg
#2
SELECT TOP 4 * FROM tabell WHERE ID NOT IN 
   (SELECT TOP 3 ID FROM tabell ORDER BY ID) 
ORDER BY ID

Frågor om SQL välkomnas i SQL-forumet.

tomas21Medlem sedan feb. 2003130 inlägg
#3

Grymt löst!

Det fungerar....nu har man lärt sig nya sätt att jobba med SQL hehe :)

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#4

Ett annat sätt att göra det på som ska vara lite mer effektivt.

SELECT TOP 4 * FROM (
	SELECT TOP 7 * FROM tabell
	ORDER BY ID DESC
) AS x
ORDER BY ID

Kräver dock att man först kollar upp hur många rader tabellen har.

OveRRidEMedlem sedan feb. 20018 509 inlägg
#5

Flyttas från ASP.

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb