쿼리

2011-04-18 1 views
0

한다고 가정 내가 기록 쿼리

key1 start_date1  start_date2 start_date3 
701 08-SEP-2009 08-DEC-2009 08-jan-2010 
701 08-JUN-2013 08-SEP-2013 08-DEC-2013 
701 08-MAR-2017 08-MAR-2018 31-DEC-1899 

3 세트를 데 날짜 수를 얻을 그래서 내가 14-apr-2011 이상 변경된 날짜 수를 얻을 필요가있다.
특정 키 701 들어, 행 3 세트 5

즉 일자로 카운트가 변경 즉 14-Apr-2011보다 큰 기간 5의 카운트이다.
나는

Key1 changedcount 
701  5 

나 this..i가 2 일 이상이 위해 애 쓰고 있었다 관한 도와주세요로 두 개의 필드와 테이블 출력을 얻을 필요가 :(

+0

는 위의 결과에서 수를 5 세트 어떻게합니까 ..? –

답변

0

다음과 같은 것을 시도 할 수 :

SELECT SUM(nb) 
    FROM (SELECT COUNT(*) nb FROM your_table WHERE start_date1 > '14-Apr-2011' 
     UNION ALL 
     SELECT COUNT(*) nb FROM your_table WHERE start_date2 > '14-Apr-2011' 
     UNION ALL 
     SELECT COUNT(*) nb FROM your_table WHERE start_date3 > '14-Apr-2011') 
0
SELECT 
    key1, 
    COUNT(CASE WHEN start_date1 > '14-Apr-2011' THEN 1 ELSE NULL END) + 
    COUNT(CASE WHEN start_date2 > '14-Apr-2011' THEN 1 ELSE NULL END) + 
    COUNT(CASE WHEN start_date3 > '14-Apr-2011' THEN 1 ELSE NULL END) AS changedcount 
GROUP BY key1 
FROM atable