Just nu i M3-nätverket
Gå till innehåll

Visa näst högsta datumet i ett fält?


Daniel Linsten

Rekommendera Poster

Daniel Linsten

Hur skriver man i SQL för att endast visa det näst högsta datumet i ett fält?

 

Tacksam för svar.

 

Daniel

Länk till kommentar
Dela på andra webbplatser

SELECT max(maxkolumn) from test

where maxkolumn NOT IN (SELECT max(maxkolumn) FROM test)

 

(SQL Server)

 

Vad gör man inte för att slippa tentaplugga:)?

 

 

/Poz

 

 

Länk till kommentar
Dela på andra webbplatser

Daniel Linsten

Tack! Men då har jag en följdfråga:

Hur gör man för att få det tredje datumet från toppen?

 

Grejen är att startsidan på en hemsida ska visa de tre senaste recensionerna, och designen på sidan gör att det måste vara tre olika Db-resultat områden. Därav följdfrågan!

 

Det är alltså inte tentaplugg jag slipper undan...! ;)

 

Daniel

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

SELECT max(maxkolumn) from test

where maxkolumn NOT IN (SELECT TOP 2 DISTINCT maxkolumn FROM test ORDER BY maxkolumn DESC)

 

 

____Robbac_____________________________________

The Truth Is Out there

 

Länk till kommentar
Dela på andra webbplatser

Tomas Nilsson

NOT IN ska man alltid försöka undvika om man kan. Så här är en alterantiv lösning som är betydligt mindre CPU-krävande. Den inre selecten är likadan, men den yttre kräver istället enbart sortering av de poster som den inre selecten returnerar, dvs 3 st.

 

select top 1 maxkolumn

from

(

select top 3 maxkolumn

from test

order by maxkolumn desc

) as a

order by maxkolumn

 

/Tomas - Poäng?

 

 

Länk till kommentar
Dela på andra webbplatser

MattiasCanberger

Om du vill ha ut det tredje största datumet (näst-näst största) kan du få problem med Tomas exempel.

 

Om du har dubletter i din datum kolumn så kan hans exempel returnera fel värde.

 

Lägg till en distinct så fungerar det dock

 

select top 1 maxkolumn

from

(

select DISTINCT top 3 maxkolumn

from test

order by maxkolumn desc

) as a

order by maxkolumn

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...