SQL Server 2008数据透视查询

Hos*_*146 1 sql t-sql sql-server pivot sql-server-2008

我在SQL Server 2008表中有数据如下所示:

在此输入图像描述

我想将它转换为如下所示:

在此输入图像描述

基本上我想在ReadTime和Coater上进行分组,然后在DataType列上进行透视.有人可以帮我用T-SQL来做这件事吗?

Ari*_*ion 6

也许这会有所帮助:

测试数据:

DECLARE @tbl TABLE
(
    ReadTime DATETIME,
    Coater VARCHAR(100),
    Value FLOAT,
    DateType VARCHAR(100)
)
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11A-COATER',1,'FCDAOpside473')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11A-COATER',1,'FCDABackside473')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11A-COATER',0,'FCDAOpside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11A-COATER',0.9,'FCDABackside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11B-COATER',1,'FCDAOpside473')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11B-COATER',2,'FCDABackside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11B-COATER',2.9,'FCDAOpside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:01','PBG11B-COATER',0,'FCDABackside473')

INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11A-COATER',1,'FCDAOpside473')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11A-COATER',1,'FCDABackside473')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11A-COATER',0,'FCDAOpside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11A-COATER',0.9,'FCDABackside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11B-COATER',1,'FCDAOpside473')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11B-COATER',2,'FCDABackside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11B-COATER',2.9,'FCDAOpside472')
INSERT INTO @tbl VALUES('2012-10-01 13:28:41','PBG11B-COATER',0,'FCDABackside473')
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT
    *
FROM
(
    SELECT 
        ReadTime,
        Coater, 
        DateType,
        Value
    FROM @tbl AS tbl
) AS SourceTable
PIVOT
    (
        MIN(Value)
        FOR DateType IN 
                     (
                        [FCDAOpside472], 
                        [FCDAOpside473], 
                        [FCDABackside472], 
                        [FCDABackside473]
                     )
    )AS PivotTable
 ORDER BY 
    ReadTime
Run Code Online (Sandbox Code Playgroud)