SQL Server Management Studio 2012 を使用しており、2300 行を超えるテーブルのピボット/クロス タブ クエリを作成したいと考えています。
テーブルには 5 つの列があります。
- name
- group
- status
- date
- count
約 580 の異なる名前があります。
各名前は、4 つの異なるグループ (A、B、C、および D) に関連付けられています。
各グループには、はいまたはいいえの完全なステータスがあります。
完了すると、各ステータスに日付が関連付けられます。それ以外の場合、ステータスは NULL です。
カウント列は、グループ B および D にのみ適用され、整数値です。
サンプル A:
name group status date count
A.A.1 A yes 5/23 NULL
A.A.1 B yes 5/27 112
A.A.1 C yes 6/4 NULL
A.A.1 D yes 6/15 122
A.B.2 A yes 5/25 NULL
A.B.2 B yes 6/1 119
A.B.2 C no NULL NULL
A.B.2 D no NULL NULL
各名前のステータスを 11 列のフィールド値として表示しようとしています。
- name
- group A
- group A date
- group B
- group B date
- group B count
- group C
- group C date
- group D
- group D date
- group D count
「名前」列には、A、B、C、および D の対応するグループ データを持つ 580 の個別の名前が含まれます。
サンプル B:
nm grp_A A_day grp_B B_day B_ct grp_C C_day grp_D D_day D_ct
A.A.1 yes 5/23 yes 5/27 112 yes 6/4 yes 6/15 122
A.B.2 yes 5/25 yes 6/1 119 no NULL no NULL NULL
(列名は、この質問セクションの形式に合わせて変更されています)
最終的に、結果の最初の列には 580 の個別の名前がすべて表示され、各グループの対応するステータス、完了日 (まだ完了していない場合は NULL)、およびグループ B と D の数が示されます。
CASE ステートメントを使用してみましたが、グループごとに 1 回名前が生成されるため、元のテーブルが 11 個のカラムにまたがって配置されます。
サンプル C:
nm grp_A A_day grp_B B_day B_ct grp_C C_day grp_D D_day D_ct
A.A.1 yes 5/23
A.A.1 yes 5/27 112
A.A.1 yes 6/4
A.A.1 yes 6/15 122
A.B.2 yes 5/25
A.B.2 yes 6/1 119
A.B.2 no NULL
A.B.2 no NULL NULL
私は何を間違っていますか?助けてください!
-- Kモジ