SQL历史记录查询

时间:2014-09-15 17:58:34

标签: sql oracle

我需要从库存历史记录表中选择数据。我的查询的主要部分将提取:

select *
from inv_history
where updated_date between '2-sep-14' and '8-sep-14'
and inv_STATUS = 'ON HAND'

然后我还需要在状态转到“手上”之前包含此数据的记录。任何提示将不胜感激。

2 个答案:

答案 0 :(得分:0)

AFTER UPDATE更改为inv_status时引入ON HAND触发器

This链接可以帮助您。

答案 1 :(得分:0)

where updated_date between '2-sep-14' and '8-sep-14'

您的查询谓词不正确。您必须将TO_DATE应用于日期文字。

要回答有关在状态为“ON HAND”之前包含记录的问题,请使用UNION ALL将以下查询添加到您的查询中:

select * from inv_history where updated_date > ( select min(updated_date) from inv_history where between inv_STATUS = 'ON HAND')

我宁愿使用subquery factoring将inv_history中的行设为:

with data as( Select * from inv_history where inv_status= 'ON_HAND'

使用上面一次而不是两次访问inv_history。