test라는 테이블이 있습니다.
여기에는 name, year, birth 등 여러가지가 있습니다.
기존에는 그냥 정보를 가져올떄
select * from test where name='홍길동';
이었는데
여기서 최근 3년의 데이터만 추출하고 싶습니다.
YEAR 칼럼에는 년도로 2015, 2014, 2013... 년도가 들어가 있습니다.
Year칼럼은 char(4)입니다.
지금이 15년 이니깐, 13년 이상의 자료를 뽑고 싶습니다.
select * from test where name='홍길동' and YEAR > (select EXTRACT(YEAR FROM SYSDATE)-2 from daul);
이런식으로 하면 안되는 건가해서요..
WITH TEST AS ( SELECT '2015' YEAR , '홍길동' NAME FROM DUAL UNION ALL SELECT '2015' YEAR , '홍길동2' NAME FROM DUAL UNION ALL SELECT '2015' YEAR , '홍길동1' NAME FROM DUAL UNION ALL SELECT '2014' YEAR , '홍길동' NAME FROM DUAL UNION ALL SELECT '2013' YEAR , '홍길동' NAME FROM DUAL UNION ALL SELECT '2012' YEAR , '홍길동' NAME FROM DUAL UNION ALL SELECT '2011' YEAR , '홍길동' NAME FROM DUAL ) SELECT * FROM TEST WHERE NAME = '홍길동' AND YEAR >= TO_CHAR(SYSDATE,'YYYY') - 2