매년 날짜까지 요금이 부과되는 계정이 있다고 가정 해 보겠습니다.날짜가있는 SQL 작업
따라서 각 청구에 대해 날짜를 언급하는 테이블에서 행이 생성됩니다. 불행히도, 어떤 이유로 인해 특정 연도에 요금이 부과되지 않아 해당 연도에 행이 생성되지 않습니다.
내 목표는 요금이 누락 된 계정과 그 해를 찾는 것입니다.
매년 날짜까지 요금이 부과되는 계정이 있다고 가정 해 보겠습니다.날짜가있는 SQL 작업
따라서 각 청구에 대해 날짜를 언급하는 테이블에서 행이 생성됩니다. 불행히도, 어떤 이유로 인해 특정 연도에 요금이 부과되지 않아 해당 연도에 행이 생성되지 않습니다.
내 목표는 요금이 누락 된 계정과 그 해를 찾는 것입니다.
아래 해결 방안에는 누락 된 지급 기간이 있지만 테이블에 지불 한 기간이 표시됩니다. 은이 아니며 첫해에 지불이 누락되거나 수령하지 않은 지불을받지 못했습니다. 예를 들어 지불액이 2010-2016 년이었고 표에 2012 년, 2013 년, 2015 만 표시되는 경우 솔루션은 2014 년을 발견하지만 2010 년, 2011 년 및 2016 년은 찾지 않습니다. 귀하의 테이블에있는 데이터는 누락 된 지불액을 찾기에 충분하지 않습니다. 또한 계정에 지불금이 있었어야하지만 도이 아닌 결제액이없는 경우 해당 계정은 테이블에 전혀 존재하지 않으므로 솔루션에서 해당 계정을 찾을 수 없습니다.
with
test_data (acctno, chargetype, dt) as (
select 1, 'xyz', to_date('20-01-2014', 'dd-mm-yyyy') from dual union all
select 1, 'abc', to_date('20-01-2015', 'dd-mm-yyyy') from dual union all
select 1, 'xyz', to_date('20-01-2017', 'dd-mm-yyyy') from dual union all
select 2, 'xyz', to_date('20-01-2015', 'dd-mm-yyyy') from dual union all
select 2, 'xyz', to_date('20-01-2016', 'dd-mm-yyyy') from dual union all
select 2, 'xyz', to_date('20-01-2017', 'dd-mm-yyyy') from dual
)
-- End of test data (not part of the solution)
-- Query begins below this line; use your actual table name instead of "test_data"
select acctno, min_year + level - 1 as yr
from (
select acctno,
min(extract(year from dt)) min_year,
max(extract(year from dt)) max_year
from test_data
group by acctno
)
where (acctno, min_year + level - 1) not in (select acctno, extract(year from dt)
from test_data
)
connect by level <= max_year - min_year + 1
and prior acctno = acctno
and prior sys_guid() is not null
;
ACCTNO YR
------ ----
1 2016
명성에 코드 또는 추가 정보를 게시하지 마십시오. – unleashed
테이블의 구조는 무엇이며 현재 작동하지 않는 쿼리는 무엇입니까? –
acctno chargetype 일 1 XYZ 20-01-2014 1 ABC 20-01-2015 1 XYZ 20-01-2017 2 XYZ 20-01-2015 2 XYZ 20-01-2016 2 XYZ 20-01 -2017 –
** 귀하의 질문에 ** 샘플 데이터를 추가하고 해당 데이터를 기반으로 예상되는 결과를 추가하십시오. [** 포맷 된 텍스트 **] (http://stackoverflow.com/help/formatting)하시기 바랍니다. [스크린 샷 없음] (http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-ask-a-question/285557 # 285557). 부적절한 질문에 대한 자세한 답변은 –