简体   繁体   English

SQL Server 2008枢轴查询

[英]SQL Server 2008 Pivot Query

I have data in a SQL Server 2008 table that looks like this: 我在SQL Server 2008表中有如下数据:

在此处输入图片说明

I want to pivot it to look like this: 我想将其设置为如下所示:

在此处输入图片说明

Basically I want to group on ReadTime and Coater and then pivot on the DataType column. 基本上,我想对ReadTime和Coater进行分组,然后对DataType列进行透视。 Could someone help me with the T-SQL to do this? 有人可以帮助我使用T-SQL吗?

Maybe this will help: 也许这会有所帮助:

Test data: 测试数据:

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')

Query: 查询:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM