我正在尝试编写一个查询,该查询返回库存中已经存放超过30天的所有产品。
我试图写的查询是这样的..返回所有30天以前有delivery_date的产品。
这是我到目前为止所做的......但我不认为它是正确的方式。
select product_id, stock_lvl, delivery_date
from inventory
where select trunc(sysdate) - ?????? > 30
order by product_id;
答案 0 :(得分:3)
你可以更简单:
select * from inventory where inv_input_dt < sysdate - 30
这里有优点:
您可能在inventory_input_date上有一个索引,它可以由DB使用。当您对列进行一些计算时,它不能被使用,例如&#34; inv_input_dt - sysdate&gt; 30&#34;
&#34; sysdate - 30&#34;只计算一次,而不是表中每条记录的计算