내 데이터베이스에는 날짜를 기준으로 회계 연도, 기간 등 (SQLAssistant로 Teradata 사용)을 제공하는 달력 테이블이 있습니다. 작년의 데이터를 SQL 쿼리에서 얻으 려하고 있는데 where where 절에 -1을 추가하는 것만 큼 단순하다고 생각했지만 작동하지 않습니다. 회계 연도가 변경 될 때 쿼리를 업데이트하는 것을 기억하고 싶지 않기 때문에 날짜를 하드 코딩하고 싶지 않습니다.달력 테이블에서 작년 회계 연도 데이터 찾기 SQL
작동하고 찾아온다 판매 데이터를 모든 회계 연도에 대한단순화 쿼리
Select s.sales, c.fiscalPeriod, c.fiscalYear
from sales s
join calendar c
on s.salesDate = c.calDate
내가 무엇을 시도했다, 그러나 데이터 다시 데려되지 것 :
Select s.sales, c.fiscalPeriod, c.fiscalYear
from sales s
join calendar c
on s.salesDate = c.calDate
where c.fiscalYear=c.fiscalYear-1
그리고이 :
Select s.sales, c.fiscalPeriod, c.fiscalYear, c.fiscalYear-1 AS lastYear
from sales s
join calendar c
on s.salesDate = c.calDate
where c.fiscalYear=lastYear
분명히 알 수 있듯이 저는 SQL을 처음 접했습니다. 어떤 도움이라도 대단히 감사하겠습니다.
나는 Teradata를 모르지만 필요한 것은 현재 날짜를 반환하는 함수입니다. 열 자체를 비교하는 것은 말이되지 않습니다. – shawnt00
우리 회계 연도는 달력 연도 (3 월 -2 월)를 기준으로하지 않습니다. 따라서 현재 날짜를 빼고 회계 연도로 설정하는 데 1 년을 빼면 정확한 시간 부분이 아닙니다. 아니면 현재 날짜를 다른 방법으로 사용 하시겠습니까? – smms
확인. 아직도 현재 날짜가 필요합니다. 이를 사용하여 회계 연도를 결정하는 당월을 얻으십시오. 예 : '년 (현재 날짜) - 1에서 9 사이의 경우 (현재 날짜), 그 다음 1 else 0 end' – shawnt00