2017-07-02 7 views
0

レコードごとに単一の行を列に行を変換して取得するSQLlクエリは、私はこのクエリで列に行を変換

select 
    LAST_MOD_BY, 
    (select count(*) 
    from tblALRT 
    where LAST_MOD_BY = 'USER2') 'Total Cases Worked', 
    (case when STATUS_TYPE = 'Pending' then count(*) end) 'Pending' , 
    (case when STATUS_TYPE = 'Reassign' then count(*) end) 'Reassign'', 
    (case when STATUS_TYPE = 'Lost' then count(*) end) 'Lost' 
from 
    tblALRT 
where 
    LAST_MOD_BY = 'USER2' 
group by 
    STATUS_TYPE, LAST_MOD_BY 

結果は次のとおりです。私は次のことをしたい

query result

結果

required result

PLE aseヘルプ。

select LAST_MOD_BY,(select count(*) from tblALRT where 
LAST_MOD_BY='USER2' 
)'Total Cases Worked', 
    (case when STATUS_TYPE = 'Pending' then count(*) end) 'Pending' , 
    (case when STATUS_TYPE = 'Reassign' then count(*) end) 'Reassign', 
    (case when STATUS_TYPE = 'Lost' then count(*) end) 'Lost' 
    from tblALRT 
where LAST_MOD_BY='USER2' 
group by LAST_MOD_BY, STATUS_TYPE; 

LAST_MOD_BY(ユーザー)の列はあなたが本当にあるので、これは次のとおりです。私は、必要に応じて単にBY句あなたのグループの順番をrearragingが機能するようにコードを修正する必要があると考えてい

おかげ

答えて

0

SELECT LAST_MOD_BY, 
    COUNT(*) AS ‘Total Cases Worked’, 
    (SELECT COUNT(*) FROM tblALRT WHERE LAST_MOD_BY = ‘USER2’ AND STATUS_TYPE = ‘Pending’) AS ‘Pending’, 
    (SELECT COUNT(*) FROM tblALRT WHERE LAST_MOD_BY = ‘USER2’ AND STATUS_TYPE = ‘Reassign’) AS ‘Reassign’, 
    (SELECT COUNT(*) FROM tblALRT WHERE LAST_MOD_BY = ‘USER2’ AND STATUS_TYPE = ‘Lost’) AS ‘Lost’, 
FROM tblALRT 
WHERE LAST_MOD_BY = ‘USER2’ 
+0

ありがとう、それは働いた。私がクエリで追加した唯一のものはgroup by節です。 – user3432538

1

グループ分け。私はこれをテストしていませんが、それでもまだ以下のコメントが機能しない場合は、自分でテストします。

希望すると助かります!代わりに、あなたには、また、サブクエリを使用することができます例を使用しての

+0

いいえ、それは動作しませんでした。ありがとう – user3432538

+0

ああ撮影。同じ結果ですか? – cosinepenguin

関連する問題