2013-09-26 4 views
0

1 개의 테이블에 2 개의 컬럼이있어서 각각의 COUNT()를 결합해야합니다. 그러나 두 열 모두 값이있는 경우 해당 행은 한 번만 계산하면됩니다. 여기 MySQL - 값이 양쪽 모두에 존재하지 않는 한 2 카운트 합치기

내가 무엇을 시도했다입니다하지만 작동하지 않습니다

SELECT SUM(IF (table1.col1 IS NOT NULL OR table1.col2 IS NOT NULL, 1, 0)) 
FROM table1 INNER JOIN table2 ON table2.col1 = table1.id 
    INNER JOIN table3 ON table3.id = table2.personid 
WHERE table3.otherid = 1 
    AND table1.col1 > '2000-01-01';* 


Sample Data: 
Table 1 
Col1......Col2 
04/17/2013........04/17/2013 
null..........04/17/2013 
03/26/2013.......02/17/2013 
03/25/2013.........null 
null.........null 
02/22/2013...........02/21/2013 

결과가 모두 열에서 날짜 5 개 중 열에 적어도 1 날짜 기록하지만 기록은 =입니다 5. 때문에해야 한 번만 계산 됨

+0

샘플 데이터 및 테스트 된 전체 쿼리 편집 : – Ken

+0

원래 질문에서 table2 또는 table3을 언급하지 않았습니다. – SteveP

답변

0

알아 냈어.

SELECT COUNT(*) 
FROM table1 INNER JOIN table2 ON table2.col1 = table1.id 
    INNER JOIN table2 ON table3.id = table2.personid 
WHERE table3.otherid = 1 
    AND (table1.col1 > '2000-01-01' OR table1.col2 > '2000-01-01');