3

次のテーブルがある場合:

Member_Key  Member_Name             col1    Mem1    col2    Mem2    col3    Mem3    col4    Mem4
-----------------------------------------------------------------------------------------------
31          100.00 - Some Account   9       Rollup1 268     Rollup2 246     Rollup3 238   Rollup4
31          100.00 - Some Account   270     Rollup5 271     Rollup6 NULL    NULL    NULL    NULL
31          100.00 - Some Account   283     Rollup7 NULL    NULL    NULL    NULL    NULL    NULL

望ましい出力は次のとおりです。

Member_Key    Member_Name    col1  mem1  col2  mem2  col3  mem3 col4 mem4 col5 mem5  col6  mem6  col7  mem7

これを 1 つのアカウントで実行しようとしてきたので、y 個のロールアップを持つ x 個のアカウントに対して動的にし、それらを 1 つの変数列の結果に入れることができますが、これを取得できないようですPIVOT または SELECT CASE を使用して作業します。ヘルプやリンクは大歓迎です。

4

1 に答える 1

0

以下のクエリがあなたの答えであることを願っています:

SELECT *
From
    (SELECT  A.Member_Key,
            A.Member_Name,
            CASE B.n
                WHEN 1 THEN A.Mem1
                WHEN 2 THEN A.Mem2
                WHEN 3 THEN A.Mem3
                WHEN 4 THEN A.Mem4
            END AS Mem,
            CASE B.n
                WHEN 1 THEN A.Col1
                WHEN 2 THEN A.Col2
                WHEN 3 THEN A.Col3
                WHEN 4 THEN A.Col4
            END AS Col
        FROM MyTable A
        CROSS JOIN (SELECT 1 
            UNION SELECT 2
            UNION SELECT 3
            UNION SELECT 4)B(n)
    )AS p
PIVOT (MIN(Col) FOR Mem IN ([Rollup1], [Rollup2], [Rullup3], [Rollup4], [Rollup5], [Rullup6], [Rullup7])) AS Pvt
于 2012-06-07T08:03:25.770 に答える