我想按最近的日期选择

时间:2014-08-28 08:34:38

标签: sql

使用Oracle 我有此声明在特定日期显示QtyAvailable股票

SELECT st.QTYAVAILABLE
FROM RV_STORAGE st
INNER JOIN m_product p
ON ( st.m_product_id =p.m_product_id)
INNER JOIN AD_Org org
ON ( org.ad_org_id          = p.ad_org_id )
WHERE st.DATELASTINVENTORY ?????? '1-AUG-2014'
AND st.M_PRODUCT_ID         = 1003965

但在表RV_Sorage中,qtyAvailable计算了很多时间(广告资源),因此我想选择QtyAvailableDATELASTINVENTORY附近

例如

   id    qty    date
1003965   5   30-APR-10
1003965  168  18-DEC-13
1003965   0   31-DEC-08
1003965   0   31-DEC-08
1003965   5   24-JUL-12
1003965   5   30-SEP-13
1003965   0   30-SEP-13
1003965   2   21-MAY-14

结果必须是2来自近日21-MAY-14

的行

1 个答案:

答案 0 :(得分:3)

我不确定我是否理解你的问题。如果您希望QTYAvailable定义日期,以下是您要查找的查询:

SELECT S.QTYAVAILABLE
FROM (SELECT S.QTYAVAILABLE
      FROM rv_storage ST
      WHERE ST.m_product_id = 1003965
          AND ST.datelastinventory < '1-AUG-2014'
      ORDER BY ST.datelastinventory DESC) S
WHERE ROWNUM = 1

希望这对您有所帮助,我不熟悉Oracle。