2011-10-24 1 views
3

SQL Server 2000のは、私は、テーブルにのみ3行を持っている賢明な

TABLE1

ID Value 

101 100 
102 200 
103 500 

を使用して行ずつ表示します。私は

予想される出力

上記の条件のために、選択クエリを作成する方法
101 102 103 
100 200 500 

行賢明なビューで作りたいです。あなたはdefenitelyあなたがID列で持っている値は、あなたがこのようなクエリを使用することができます知っている場合

は、クエリのヘルプ

+0

出力結果は表のですか? 'ID'と' Value'の表示方法は? – sll

+0

参照のためにIDと値が記載されています..... – Gopal

+0

結果には「101」、「102」、「103」とは何ですか?それらは列名か、行内の値(具体的には最初の行、おそらく)ですか? –

答えて

1

が必要:

SELECT 
    MAX(id_101) AS id_101, 
    MAX(id_102) AS id_102, 
    MAX(id_103) AS id_103 
FROM (
SELECT 
    1 AS aux, 
    CASE WHEN ID = 101 THEN val ELSE null END AS id_101, 
    CASE WHEN ID = 102 THEN val ELSE null END AS id_102, 
    CASE WHEN ID = 103 THEN val ELSE null END AS id_103 
FROM table1 
) AS t(aux, id_101, id_102, id_103) 
GROUP BY t.aux; 
1

101、102、103はあなたが回転することができ、カラム名であると仮定すると、表usign PIVOT:

SELECT * 
FROM 
(
SELECT id, value 
FROM @data1 
) p 
PIVOT (SUM(value) FOR [id] IN ([101], [102], [103])) AS pvt 

enter image description here


データを準備します。

DECLARE @data1 TABLE(id int, value INT) 
INSERT INTO @data1 VALUES(101, 100) 
INSERT INTO @data1 VALUES(102, 200) 
INSERT INTO @data1 VALUES(103, 500) 
+0

PivotはSQL Server 2008、OPは2000を使用しています –

関連する問題