需要以透视格式排列表格中的数据

时间:2015-03-27 21:52:43

标签: tsql pivot row rank

我在表1中有以下格式的数据。需要帮助创建查询

表1

            Type  Currency    Value
            -AX     AU        35
            -AX     BR        98
            -AX     CA        18
            -AX     CH        1.
            -AX     EU        69
            -AX     GB        70
            -AX     HU        1.
            -AX     IL        62
            -AX     IN        23
            -AX     JP        29
            -AX     KR        5.
            -AX     MX        68
            -AX     NO        77
            -AX     NZ        75
            -AX     PL        6.
            -AX     RU        2
            -AX     SE        59
            -AX     SG        90
            -AX     TR        57
            -AX     TW        4.
            -AX     US        32
            -AX     ZA        62
            AUT     AU        0.
            AUT     CA        .2
            AUT     EU        .6
            AUT     GB        9.
            AUT     HK        .6
            AUT     JP        .4
            AUT     KR        3.
            AUT     MX        .8
            AUT     MY        56
            AUT     SE        .0
            AUT     TH        .0
            AUT     TR        .4
            AUT     US        53
            AUT     ZA        .8
            AYT     BR        3.
            AYT     CH        29
            AYT     HK        65
            AYT     IL        57
            AYT     PL        .7
            AYT     TR        8.
            AYT     US        .1

需要执行以下操作

1)从table2中获取因子 - 对于Eg,检索的因子是2

例如:从表2中选择因子并将上表中的每个值除以23

2)更改以下格式显示的值后

            CCY        AX      AUT       AYT        TOTAL      
            AU         1        1        1          3   
            BR         -        -        3          3
            CA         3        3        3          9
            CH         -        2        -          2
            EU         3        3        3          9
            GB         -        3        3
            HK                           
            HU         2        2        2          6
            IL         11       -        -          11
            IN         8        8        8          24
            JP         6        6        6          18
            KR         0        0        0          0
            MX         -        0        -          0
            MY          9        -       -          9
            NO         1        -        -
            NZ         1        1        1
            PL         3        3        3
            SE         -        -        -
            SG         -        5        5
            TH                           
            TR         2        2        2
            TW         1        1        1
            ZA         4        4        4

以上数字仅供参考。任何帮助。谢谢

1 个答案:

答案 0 :(得分:0)

您可以像这样使用PIVOT

SELECT
    [Currency] AS 'CCY',
    [AX],
    [AUT],
    [AYT],
    ISNULL([AX], 0) +
        ISNULL([AUT], 0) +
        ISNULL([AYT], 0) AS 'TOTAL'
FROM [Table1]
PIVOT (
    SUM([Value])
    FOR [Type] IN ([AX], [AUT], [AYT])
) AS [P]