2017-10-22 12 views
0

私はSQLクエリの質問があります。現在のテーブルは次のようになります。MySQL - 列と列のクエリ

+--------+------+-----+-----+------+ 
    | hostid | itemname | itemvalue | 
    +--------+------+-----+-----+------+ 
    | A |  1  |  10 | 
    +--------+------+-----+-----+------+ 
    | B |  2  |  3  | 
    +--------+------+-----+-----+------+ 

このような出力を得るにはどうすればよいですか?いくつかの集約関数を使用して

+--------+------+-----+-----+--------+------+-----+----------+ 
    | itemname_A | itemvalue_A | itemname_B | itemvalue_B| 
    +--------+------+-----+-----+--------+------+-----+----------+ 
    |  1  |  10  |  2  |  3  | 
    +--------+------+-----+-----+--------+------+-----+----------+ 
+0

の固定値のために動作します注にはありません。 'hostid'の値は固定ですか?またはより多くの可能性があります –

+0

hostidは固定されています – collinsfm316

+0

重複は、SQL Serverのためですが、この場合には、結合のアプローチは動作する必要があります –

答えて

-1

あなたは、所望の出力

select 
max(case when hostid = 'A' then itemname end) itemname_A, 
max(case when hostid = 'A' then itemvalue end) itemvalue_A, 
max(case when hostid = 'B' then itemname end) itemname_B, 
max(case when hostid = 'B' then itemvalue end) itemvalue_B 
from demo 

を得ることができ、それがホストID DEMO

+1

これは完全に機能しました!どうもありがとうございます。それは重複した質問かもしれませんが、これを助ける時間をとってくれてありがとう。心から感謝する!! – collinsfm316

関連する問題