테이블 년도 컬럼에 여러 년도 값들이 있고
시작년도와 종료연도 값을 파라미터로 받을 때
그 년도기간 사이에 존재하지 않는 년도 1건을 찾을려고 합니다..
년도 |
2000 |
2001 |
2003 |
2004 |
2005 |
시작연도: 2000
종료연도: 2004
결과: 2002
저 같은 경우에는 while문을 돌려서 시작연도 값을 +1 씩 하면서 테이블에 해당 년도 값이 존재하는지 체크하는 방식으로
쿼리를 작성했는데 좀 더 쉽게 구할 수 있는 방법 없을까요??
테이블 년도 컬럼에 여러 년도 값들이 있고
시작년도와 종료연도 값을 파라미터로 받을 때
그 년도기간 사이에 존재하지 않는 년도 1건을 찾을려고 합니다..
년도 |
2000 |
2001 |
2003 |
2004 |
2005 |
시작연도: 2000
종료연도: 2004
결과: 2002
저 같은 경우에는 while문을 돌려서 시작연도 값을 +1 씩 하면서 테이블에 해당 년도 값이 존재하는지 체크하는 방식으로
쿼리를 작성했는데 좀 더 쉽게 구할 수 있는 방법 없을까요??
@start datetime = '2000-01-01'
,@end datetime = '2004-01-01'
;with year_list as (
select year(dateadd(year,number,@start)) as years
from master..spt_values
where number between 0 and datediff(year,@start,@end)
and type = 'p'
)
select years
from year_list as a
left join tbl_year as b
on b.years = a.years
where b.years is null;