2012-01-18 27 views
1

私はこのようになりますSQL Server 2008のテーブル内のデータを持っている:私はこのように見えるためにそれを旋回するようにしたいSQL Server 2008のピボットクエリ

enter image description here

を:

enter image description here

基本的には、ReadTimeとCoaterをグループ化して、DataType列をピボットする必要があります。誰かがこれを行うためにT-SQLを手伝ってもらえますか?

+1

はあなたが本当に私は、クエリのすべての反復でこの質問を乱雑にしますかを私はもう試した?それは、私が実際に何かを試したことをあなたに示すためだけにサーバーになります。 – Hosea146

+1

最も成功したのはいかがですか? –

+1

@ Hosea146実際にあなたが試した質問を表示することで、あなたが行ったことを変更することであなたが望む結果が得られるかどうかをコミュニティが確認するのに役立ちます。だから両方の面で時間の無駄ではありません。 – Taryn

答えて

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

問合せ:

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 
+0

まさに私が必要としたもの。完璧に動作するようです! – Hosea146

+2

おそらく答えを受け入れることができますか? – Arion