我一直在阅读有关过滤SQL查询的许多主题,但似乎没有一个适用于我的情况,所以我需要一些帮助.我在SQL表上有以下数据.
Date item quantity moved quantity in stock sequence
13-03-2012 16:51:00 xpto 2 2 1
13-03-2012 16:51:00 xpto -2 0 2
21-03-2012 15:31:21 zyx 4 6 1
21-03-2012 16:20:11 zyx 6 12 2
22-03-2012 12:51:12 zyx -3 9 1
Run Code Online (Sandbox Code Playgroud)
所以这是在仓库中移动的数量,问题是前两行是接收并同时返回,因为我正在尝试进行查询,在给定时间给出所有项目的库存.我用,max(date)但我得不到合适的数量.
SELECT item, qty_in_stock
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY item ORDER BY item_date DESC, sequence DESC) rn
FROM mytable
WHERE item_date <= @date_of_stock
) q
WHERE rn = 1
Run Code Online (Sandbox Code Playgroud)