Witam, zaczynam dopiero z MSSQL i doszedłem do pierwszych problemów. Potrzebuję wyciągnąć z bazy 1 ostatni rekord. Wiem, że to może przedszkole, ale za nic nie mogę sobie poradzić. Jak to zrobić?
SELECT TOP 1
...
ORDER BY ... DESC
?
Zauważ, że sortowanie odbywa się malejąco, więc dostaniesz ostatni.
dzięki kolego, zaoszczędziłeś mi pół dnia :)
Hmmm ale jeżeli to przedszkole to rozwiązanie można by jakoś opisać bo jest poprawne tylko przy pewnych warunkach:
SELECT TOP 1 ---- > Pokaż tylko 1 rekord
... ---> tu wpisujesz kolumny co chcesz wyświetlić
ORDER BY ... DESC --- > a tu sortujesz malejąco po kolumnie
To teraz weźmy przykład prostej tabeli z [Imie], [Nazwisko] i wierszami wprowadzonymi według kolejności
- Olek - Kowalski
- Waldek - Nowak
- Franz - Maurer
- Tania - Lewa
Podane zapytanie szukając po polu Imie:
SELECT TOP 1
[Imie], [Nazwisko]
ORDER BY [Imie] DESC
da rozwiązanie:
- Waldek - Nowak
A nie Tania - Lewa.
Innymi słowy rozwiązanie sprawdzi się tylko gdy kolumna po której szukamy jest numerem i do tego przy wpisie nowego rekordu jest inkrementacja. (prosto mowiąc jakies pole ID z autonumerowaniem np. )
BlackBad napisał(a):
Innymi słowy rozwiązanie sprawdzi się tylko gdy kolumna po której szukamy jest numerem i do tego przy wpisie nowego rekordu jest inkrementacja.
albo datą wstawienia/aktualizacji rekordu