SQL Server 2012 でアプリケーションのクエリを作成しています。このクエリは、SQL Server の単一のテーブルからあらゆる種類のステータスを取得することになっています。
テーブルは次のように構成されています。
ProjectType | Team | ProjectStatus
----------------------------------
Proj1 B Rec
Proj1 B Rec
Proj1 B Hold
Proj2 B Rec
Proj3 A Hold
Proj4 C Some
私の望む出力は次のようになります。
ProjectType | Total | Team | Rec| Hold | Some |
-----------------------------------------------
Proj1 3 B 2 1 0
Proj2 1 B 1 0 0
Proj3 1 A 0 1 0
Proj4 1 C 0 0 1
私はこれが可能だと思います。
すべてのステータスは
Rec, BA, DQ, P, Prev, PRed, PCom, 90, 90Rev, 90Red, 90Com, SS, SSRed, D, C
私がこれまでに試したこと:
select
ProjectType, Team, count(ProjectStatus)
from
sites
where
(ProjectType is not null and ProjectType <> '') and Team <> ''
group by
ProjectType, Team
select
s.ProjectType, S.Team, S.ProjectType, C.cnt
from
Sites s
Inner Join
(Select ProjectType, Count(ProjectStatus) as cnt
from Sites
Where ProjectStatus = 'Rec' group By ProjectType) C on S.ProjectType = c.ProjectType
ここに私が追加しようと思った場所があります
Inner Join ( Select ProjectType, Count(ProjectStatus) as cnt from Sites
Where ProjectStatus='Rec' group By ProjectType) C
on S.ProjectType = c.ProjectType
それらをすべて個別にカウントするために私が持っているステータスごとに...
編集:しかし、出力は間違っています。すべての異なるものに対してすべて同じProjectTypeをカウントしました(たとえば、10個の差分のものがあるとします)、すべての同じものを10回以上表示しました
これを行うためのより良い方法はありますか - 誰かが私を完成させるのを手伝ってくれますか?