SQLServer2008透视查询
SQL Server 2008表中的数据如下所示: 我想让它看起来像这样: 基本上,我想对ReadTime和Coater进行分组,然后关注DataType列。有人能帮我用T-SQL来做这件事吗?也许这会有帮助: 测试数据: 查询: 也许这会有帮助: 测试数据: 查询:SQLServer2008透视查询,sql,sql-server,sql-server-2008,tsql,pivot,Sql,Sql Server,Sql Server 2008,Tsql,Pivot,SQL Server 2008表中的数据如下所示: 我想让它看起来像这样: 基本上,我想对ReadTime和Coater进行分组,然后关注DataType列。有人能帮我用T-SQL来做这件事吗?也许这会有帮助: 测试数据: 查询: 也许这会有帮助: 测试数据: 查询: 你真的想让我把这个问题和我尝试过的所有迭代查询混在一起吗?这只会让你知道我确实尝试过一些东西。最成功的一个怎么样?@Hosea146实际上通过显示你尝试过的查询,它可以帮助社区了解改变你所做的事情是否会给你想要的结果。所以这并不是
你真的想让我把这个问题和我尝试过的所有迭代查询混在一起吗?这只会让你知道我确实尝试过一些东西。最成功的一个怎么样?@Hosea146实际上通过显示你尝试过的查询,它可以帮助社区了解改变你所做的事情是否会给你想要的结果。所以这并不是在两方面都浪费时间。你真的想让我把这个问题和我尝试过的所有迭代查询混在一起吗?这只会让你知道我确实尝试过一些东西。最成功的一个怎么样?@Hosea146实际上通过显示你尝试过的查询,它可以帮助社区了解改变你所做的事情是否会给你想要的结果。所以这对双方来说都不是浪费时间。
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')
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