Sql 将列转置为行而不求和

Sql 将列转置为行而不求和,sql,sql-server,pivot,Sql,Sql Server,Pivot,我有下表: id name year month value code 1 George 1991 1 675 1234 2 George 1991 2 675 1234 3 George 1991 2 675 1234 5 George 1991

我有下表:

    id     name     year     month     value     code
    1      George   1991       1       675       1234
    2      George   1991       2       675       1234
    3      George   1991       2       675       1234
    5      George   1991       3       675       1234
    ...    ...      ...       ...      ...       ...
但我必须这样显示,这样我就可以连续几个月使用一个id:

    id     year     name     code     jan     feb     mar     apr   ...  dec
    1      1991     George   1234     675     675     675      0          0
    2      1991     George   1234      0      675      0       0          0
    ...    ...      ...      ...      ...     ...     ...     ...   ...  ...

问题是:同一个月内可能有多个值,如果不将本例中的值相加,我无法创建该结构,二月,我不希望这样。有没有办法使用pivot或其他工具来实现这一点???

使用pivot会有什么问题

通过这种查询,当ID、名称、代码、年份和月份之间存在唯一性时,您将得到您所期望的结果

select id, name, code, year,
        [1] as JAN,
        [2] as FEB,
        ...
        [11] as NOV,
        [12] as DEC
from (
        select id, name, code, year, month, value
        from <table>
    )
pivot (
    max (value) for month in ([1],[2], ... [11],[12])
)

如果使用PIVOT,会有什么问题

通过这种查询,当ID、名称、代码、年份和月份之间存在唯一性时,您将得到您所期望的结果

select id, name, code, year,
        [1] as JAN,
        [2] as FEB,
        ...
        [11] as NOV,
        [12] as DEC
from (
        select id, name, code, year, month, value
        from <table>
    )
pivot (
    max (value) for month in ([1],[2], ... [11],[12])
)

如果您希望保持每个月份的多个值,则应考虑在使用枢轴之前应用RoWoL编号:

结果是:

|   NAME | YEAR | CODE | JAN | FEB | MAR |
------------------------------------------
| George | 1991 | 1234 | 675 | 675 | 675 |
| George | 1991 | 1234 |   0 | 675 |   0 |

如果您希望保持每个月份的多个值,则应考虑在使用枢轴之前应用RoWoL编号:

结果是:

|   NAME | YEAR | CODE | JAN | FEB | MAR |
------------------------------------------
| George | 1991 | 1234 | 675 | 675 | 675 |
| George | 1991 | 1234 |   0 | 675 |   0 |

您使用的是什么风格的数据库?您使用的是什么风格的数据库?