Forum » Programiranje » [SQL] kako izbrati zadnji zapis v tabeli
[SQL] kako izbrati zadnji zapis v tabeli

greentech ::
Zanima me kako v SQL izbereš zadnji zapis v tabeli.
S SELECT TOP 1 izbereš prvega, kako izbrati zadnjega.
S SELECT TOP 1 izbereš prvega, kako izbrati zadnjega.

greentech ::
ja..tud je tud način samo ne vem če bi v mojem primeru deloval oz. če bi dobil to kar hočem
Gre za to da pač vnašam v tabelo teže artiklov, ki se potem odštevajo od neke skupne teže. Odšteti se mora teža artikla, ki smo jo vnesli nazadnje.
Procedur za vnos zgleda takole
CREATE PROCEDURE insert
@tiskalnik_id int,
@teza decimal(11,3)
AS
declare @curr_count as int
--preberemo zadnje zaporedje na paleti
SELECT @curr_count = MAX(zaporedje)
FROM teze_TSE
WHERE (tiskalnik_id = 1)
if @curr_count is null
SET @curr_count = 0
SET @curr_count = @curr_count + 1
-- tezo pristejemo paleti
insert into teze_tse(tiskalnik_id, zaporedje, teza)
values (@tiskalnik_id, @curr_count, @teza)
GO
---Na katero mesto v proceduri bi moral vnesti ORDER BY desc da bi mi sortiralo padajoče
Gre za to da pač vnašam v tabelo teže artiklov, ki se potem odštevajo od neke skupne teže. Odšteti se mora teža artikla, ki smo jo vnesli nazadnje.
Procedur za vnos zgleda takole
CREATE PROCEDURE insert
@tiskalnik_id int,
@teza decimal(11,3)
AS
declare @curr_count as int
--preberemo zadnje zaporedje na paleti
SELECT @curr_count = MAX(zaporedje)
FROM teze_TSE
WHERE (tiskalnik_id = 1)
if @curr_count is null
SET @curr_count = 0
SET @curr_count = @curr_count + 1
-- tezo pristejemo paleti
insert into teze_tse(tiskalnik_id, zaporedje, teza)
values (@tiskalnik_id, @curr_count, @teza)
GO
---Na katero mesto v proceduri bi moral vnesti ORDER BY desc da bi mi sortiralo padajoče

BigWhale ::
Ce imas en index na polju id, ki je autoincrement (in jasno da ga imas, ker vsaka tabela ima polje id, no, bi ga morala imeti :P), potem naredis nekaj v stilu
SELECT * FROM table WHERE id=MAX(id);
SELECT * FROM table WHERE id=MAX(id);

ElectricMan ::
SELECT * FROM table WHERE id=MAX(id);
Narobe. Prav je takole:
SELECT *
FROM table
WHERE Id = (SELECT MAX(Id) FROM table);
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Large databaseOddelek: Programiranje | 1468 (1166) | krho |
» | MYSQL vprašanjeOddelek: Programiranje | 1849 (1464) | MrBrdo |
» | [SQL] InsertOddelek: Programiranje | 2106 (1708) | greentech |
» | Funkcija v SQLOddelek: Programiranje | 1366 (1233) | destiny |
» | 2002-03-29 -> 29.3.2002Oddelek: Izdelava spletišč | 1639 (1465) | cahahopie |