我每天都在桌子上进行大量的转换。 我想只在当天发生最后交易。
我想要复制this,但我不能在我自己的
上实现它这是我的脚本
Int
这是我目前的结果
这是我想要的输出
我怎样才能仅使用datetime获取当天发生的最后一笔交易?
答案 0 :(得分:1)
如果您有一列指定一天内的订单,那么您可以执行以下操作:
SELECT sh.*
FROM (SELECT sh.*,
ROW_NUMBER() OVER (PARTITION BY product_id, CAST(date_track as DATE)
ORDER BY date_track DESC
) as seqnum
FROM stocks_history sh
WHERE product_id = 30 AND
date_track between '2016-09-02' and '2016-09-05'
) sh
WHERE seqnum = 1;
如果您有另一个具有排序的列,请将其用于ORDER BY
。
答案 1 :(得分:1)
SELECT TOP 1
product_id
,product_name
,stock_on_hand
,stock_in
,stock_out
,date_track
FROM stocks_history
WHERE
product_id = 30
AND
date_track between '9/1/16' and '9/9/16'
order by date_track asc
答案 2 :(得分:0)
如果stocks_history表的date_track字段支持日期输入,那么ORDER BY可以解决问题。您可以尝试以下查询:
SELECT product_id ,产品名称 ,stock_on_hand ,stock_in ,脱销 ,date_track 来自stocks_history 在'9/1/16'和'9/9/16'之间,product_id = 30 AND date_track ORDER BY date_track DESC