如何选择列中的最后一个值插入(例如OracleDB的函数LAST())

时间:2019-05-03 14:05:17

标签: postgresql

实际上我很支持,并且正在为我的AirsoftShop和一些请求设置DB PostgreSQL。我需要找到与SELECT LAST(xx)FROM yy相似的功能,我认为它们可以在SQL Server和OracleDB上使用。为了通过LAST()返回列目标中的最后一个插入值。

我有这张桌子:

CREATE TABLE munition.suivi_ammo (
    type_ammo integer NOT NULL,
    calibre integer NOT NULL,
    event integer NOT NULL,
    date_event date NOT NULL,
    entrance integer NOT NULL,
    exit integer NOT NULL,
    inventory integer NOT NULL,
    FOREIGN KEY (calibre) REFERENCES munition.index(numero),
    FOREIGN KEY (event) REFERENCES munition.index(numero),
    FOREIGN KEY (type_ammo) REFERENCES munition.index(numero)
);

以及用于通过编号id进行定义的索引:

CREATE TABLE munition.index (
    numero integer NOT NULL,
    definition text NOT NULL,
    PRIMARY KEY (numero) 
);

我想选择表中最后一个插入的库存,并根据库存后的流入和流出量计算当前库存

当我在特定日期执行此类请求以确保只有最后一个库存时,这是可行的,但是我不想这样做

SELECT index.definition,
Sum(suivi_ammo.inventory) + Sum(suivi_ammo.entrance) - Sum(suivi_ammo.exit) AS Stock
FROM munition.suivi_ammo
INNER JOIN munition.index ON suivi_ammo.type_ammo = index.numero
WHERE date_event < '03/05/2019' AND date_event >= '2019-04-10'
GROUP BY index.definition;

我也尝试使用last_value()窗口函数,但是不起作用。 谢谢!

0 个答案:

没有答案