有一表:ASSETS_INTERFACE
这里只写部分字段:
ASSETS _NO 资产编号
DEPRECIATION_PERIOD  折旧期间
ASSETS _TAG   资产标签号
ASSETS _NAME  资产名称
ASSETS _TYPE 资产类别
TYPE_ DESCRIPTION  类别描述
NUM 数量
START_DATE 启用日期
USE_YEAR NUMBER 使用年限
RESIDUE_MOTH 剩余月数表里面的数据是这样的,不同的折旧期间会有相同的资产数据,例如折旧期间(DEPRECIATION_PERIOD)为3月份有资产编号(ASSETS_NO)为1001的资产,4月份也有资产编号(ASSETS_NO)为1001的资产,但是其他字段的数据不一样
现在取数据是这样的:取折旧期间最大的月份的那一条资产数据,给用户选择,求sql

解决方案 »

  1.   


    select * from
    (select row_number()over(partition by ASSETS_NO order by DEPRECIATION_PERIOD desc) row_,
           t.*
       from ASSETS_INTERFACE)
    where row_ = 1;
      

  2.   

    1L正解,少写了个t
    WITH ASSETS_INTERFACE AS (
    SELECT 1 ASSETS_NO,1 DEPRECIATION_PERIOD,1 ASSETS_TAG,'ZC1' ASSETS_NAME,'LX1' ASSETS_TYPE,'COMMENT1' TYPE_DESCRIPTION,1 NUM,sysdate START_DATE,1 USE_YEAR_NUMBER,1 RESIDUE_MOTH FROM DUAL
    )
    select * from
    (select row_number()over(partition by ASSETS_NO order by DEPRECIATION_PERIOD desc) r,
           t.*
       from ASSETS_INTERFACE t)
    where r = 1
      

  3.   

    来我们项目组做DBA吧....
    就缺这个...
    好多有关计算的存储过程...