2016-08-10 3 views
0

私はSQLを初めて使用しているため、特定の値に対して複数の結果を異なる列に選択するのに役立つ必要があります。Sqlite3 - 複数の結果を別々の列に入れます

DevID PrimConnID SecConnID OtherColumns ... 
D1   Q1   Q2 
D2   Q3   Q4 
...   ...   ...   ... 

は、標準SQLを使用して、このことが可能です -

DevID ConnID Other Columns ... 
D1  Q1 
D1  Q1 
D1  Q1 
D1  Q2 
D1  Q2 
D1  Q2 
D2  Q3 
D2  Q3 
D2  Q3 
D2  Q4 
D2  Q4 
D2  Q4 
...  ... 

私は結果SELECTクエリがなりたい - 私のテーブルの

パートは次のようになりますか?それが明確でない場合は、私は本当に初心者です。

+0

'ConnID'列がどのように多くの異なる値を持つことができますか?あなたはおそらくピボットクエリを探していますが、正確な答えは私の質問への答えに依存します。 –

+0

'ConnID'には100以上の異なる値があります –

+0

フルスケールの問題の例を示すサンプルデータを表示する必要があります。あなたは常に2つの列しか必要としませんか、結果セットに100の列がありますか? –

答えて

-1

これを試してみてください。

DECLARE @cols AS NVARCHAR(MAX), 
    @query AS NVARCHAR(MAX); 

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.ConnID) 
      FROM #YourTableName c 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 

set @query = 'SELECT DevID, ' + @cols + ' from 
      (
       select DevID 
       ,ConnID 
       from #YourTableName 
      ) x 
      pivot 
      (
       max(ConnID) 
       for ConnID in (' + @cols + ') 
      ) p ' 


execute(@query) 
+0

ニュートンに感謝しますが、ConnIDの値は100以上あり、各DevIDには2つのプリムコンIDと2つのプリムコンIDがあります。約150のDevID値があります。 –

+0

これはそれを行う必要があります: –

+0

ありがとうニュートン。今これを試してみてください。 DECLAREの構文エラーを取得しています。私はそれをうまく動作させることができるかどうかを見て回り、SQLの変数の設定と宣言について読んでいきます。 –

関連する問題