Sql server 数据透视表中的行未合并

Sql server 数据透视表中的行未合并,sql-server,sql-server-2008,pivot,Sql Server,Sql Server 2008,Pivot,我创建了下表来说明正在发生的事情 create table weather ( WDate varchar(10), ItemCode varchar(8), ItemValue int, ItemUnits varchar(8)) insert into Weather values ('2020-02-10', 'MAXTEMP', 6, 'degC'), ('2020-02-10', 'MINTEMP', 2, 'degC'),

我创建了下表来说明正在发生的事情

create table weather (
    WDate varchar(10),
    ItemCode varchar(8),
    ItemValue int,
    ItemUnits varchar(8))

insert into Weather values 
    ('2020-02-10', 'MAXTEMP', 6, 'degC'),
    ('2020-02-10', 'MINTEMP', 2, 'degC'),
    ('2020-02-10', 'RAIN', 0, 'mm'),

    ('2020-02-11', 'MAXTEMP', 5, 'degC'),
    ('2020-02-11', 'RAIN', 20, 'mm'),
    ('2020-02-11', 'MINTEMP', 1, 'degC'),

    ('2020-02-12', 'RAIN', 5, 'mm'),
    ('2020-02-12', 'MAXTEMP', 8, 'degC'),
    ('2020-02-12', 'MINTEMP', 2, 'degC')
数据的顺序并不总是相同的,因为它可能来自可能不同步的设备

SELECT
    [wdate] as 'Date',
    [MINTEMP] as 'Min Temp',
    [MAXTEMP] as 'Max Temp',
    [RAIN] as 'Rain'
FROM
(
    SELECT
        *
    FROM
        weather
) rawdata
PIVOT
(
    min(ItemValue)
    FOR ItemCode IN ([MINTEMP], [MAXTEMP], [RAIN])
) pitem
ORDER BY WDate
我明白了

我不明白为什么雨水数据不与最低和最高温度在同一行。我期待着

WDate       Min Temp  Max Temp  Rain
2020-02-10  2         6         0
2020-02-11  1         5         20
2020-02-12  2         8         5
必须以最少的列数“馈送”轴。请注意,子选择
rawdata

示例

SELECT
    [wdate] as 'Date',
    [MINTEMP] as 'Min Temp',
    [MAXTEMP] as 'Max Temp',
    [RAIN] as 'Rain'
FROM
(
    Select WDate
          ,ItemCode
          ,ItemValue 
      from Weather
) rawdata
PIVOT
(
    min(ItemValue)
    FOR ItemCode IN ([MINTEMP], [MAXTEMP], [RAIN])
) pitem
ORDER BY WDate
返回

Date        Min Temp    Max Temp    Rain
2020-02-10  2           6           0
2020-02-11  1           5           20
2020-02-12  2           8           5

我打算就项目单位提出一个单独的问题。所以基本上我应该指定我正在使用的列,而忽略我没有使用的列。@cup BINGO!!你明白了:)
Date        Min Temp    Max Temp    Rain
2020-02-10  2           6           0
2020-02-11  1           5           20
2020-02-12  2           8           5