2016-09-16 2 views
-4

연락처가 createddate가 다른 테이블에서 지난 6 개월 동안 사용되지 않은 경우 "연락처"테이블이 있습니다 연락처를 제거해야합니다. 누구든지이 문제를 해결할 수 있습니까?오라클 : 날짜 확인은 지난 6 개월 동안 사용되었습니다.

+1

질문이 있습니다. 하지만 네가 무엇을 요구하는지 모르겠다. 일정 기간 동안 다른 테이블에서 날짜를 사용한다는 것은 무슨 뜻입니까? 재현 가능한 테스트 케이스 (ddl, dml, 예상 결과)가 도움이 될 것입니다. –

+0

여기에서 [ask]에 대한 몇 가지 제안 사항과 [Mcve] – Aleksej

+0

@JustinCave 2 테이블 (CONTACT 및 ORDERS)을 작성하는 방법에 대해 설명합니다. 연락처가 오늘 생성되고 contactId가 ORDERS 테이블의 모든 주문에 사용되는 경우 np를 의미합니다. 지난 6 개월 동안 주문에 대한 연락처 ID를 사용하지 않으면 연락처 테이블의 항목을 삭제해야합니다. –

답변

0

당신이

select c.contact_id 
    from contact c 
where not exists(select 1 
        from orders o 
        where o.contact_id = c.contact_id 
         and o.order_date > add_months(sysdate,-6)) 

이 행 말했다되고 그건

delete from contact c 
where not exists(select 1 
        from orders o 
        where o.contact_id = c.contact_id 
         and o.order_date > add_months(sysdate,-6)) 

를 삭제하려면 지난 6 개월에 주문을했다하지 않은 연락처를 확인하려는 경우, 당신이 거라고 아닌 것 같습니다 이것을 원한다. 합리적인 데이터 모델이있는 경우 연락처를 삭제하면 6 개월이 넘은 주문을 삭제해야한다는 것을 의미합니다. 이는 잘못된 생각처럼 보입니다. 아마도 active_flag을 'N'으로 설정하는 것이 더 합리적 일 것입니다.

관련 문제