私はこれを単純化します:
正常に機能する2つのSQL式があります。
初め:
select count(*) as number1
from T1
where DATE1>'2012-01-01' and DATE2<'2012-12-31'
結果:13
select count(*) as number2
from T1
where DATE3>DATE2 and CURDATE()>DATE2
結果:5
しかし、これら2つのCOUNTSをGROUP BYに挿入しようとすると、常に13の結果が得られます!!!
SELECT NAME,
COUNT(case when DATE1>'2012-01-01' and DATE2<'2012-12-31' then 1 else 0 end) as number1,
COUNT (case when (DATE3>DATE2 and CURDATE()>DATE2) then 1 else 0 end) as number 2
from T1
私は結果として得ています:
NAME NUMBER1 NUMBER2
A 5 5
B 4 4
C 4 4
しかし、私は取得する必要があります:
NAME NUMBER1 NUMBER2
A 5 4
B 4 0
C 4 1
したがって、最初の2つのクエリのように、列のSUMは13と5になります。私は何が間違っているのですか?ありがとうございました