SQL クエリに問題があります
私は持っている
T1:
ID STATUS REPORTEDBY
1 CLOSED USER1
2 CLOSED USER2
3 NEW USER1
4 INPRG USER1
5 CLOSED USER1
T2:
T1ID STATUS
1 NEW
1 CHECKING
1 CLOSED
2 NEW
2 CHECKING
2 CLOSED
3 NEW
4 CHECKING
4 INPRG
5 INPRG
5 CLOSED
結果として、私はこれを取得したい:
USER NumberHasCHECKING NumberDifferentFromNewChecking NumberClosed
USER1 2 3 2
USER2 1 1 1
REPORTEDBYフィールドで結果グループとして取得したい
T2 に CHECKING ステータスが存在する T1 からのレコードの数、
現在 T1 の NEW または CHECKING とは異なるステータスにある T1 からのレコードの数
T1 で現在 CLOSED ステータスになっている T1 のレコード数。
.
select reportedby,count (case when T2.status='CHECKING' then 1 end) as NumberHasChecking,
count (case when T2.status not in ('NEW','CHECKING') then 1 end) as NumberDifferentFromNewChecking,
count (case when T1.status='CLOSED' then 1 end) as NumberClosed
from t1
inner join t2 on T1.ID=T2.T1ID
group by reportedby
しかし、内部結合を行った後、2 番目と 3 番目の列でより大きな結果が得られます。これを解決するには?ありがとうございました