2012-01-28 7 views
0

Googleドキュメントから構造化されていないスプレッドシートを抽出し、それを次の構造のデータベースにロードしてさらに分析しました。セルテーブルからスプレッドシートの行を再構築するためのsqlクエリ

enter image description here

私の目標は、次のようになり、行から行くために、次のようになります。これに

SpreadsheetTitle WorksheetTitle Row Column Value 
Copy of updated accounting backup (a-e) Accuquote 3 1 September 2005 
Copy of updated accounting backup (a-e) Accuquote 5 2 Rate 
Copy of updated accounting backup (a-e) Accuquote 5 3 # of Sales 
Copy of updated accounting backup (a-e) Accuquote 5 4 Total Spent 
Copy of updated accounting backup (a-e) Accuquote 6 1 Accuquote 
Copy of updated accounting backup (a-e) Accuquote 6 2 $70 
Copy of updated accounting backup (a-e) Accuquote 6 3 45 
Copy of updated accounting backup (a-e) Accuquote 6 4 $3150 
Copy of updated accounting backup (a-e) Accuquote 6 5 PAID 

SpreadsheetTitle WorksheetTitle Row Column1 Column2 Column3.....etc...etc.. 

私は非書き込むことによって続行する方法を考えることができます私は再帰的なクエリ(多分)またはピボット関数の行に沿って何かを使用できるかどうかを知りたいのです。

答えて

1

私はピボット専門家ではない:http://msdn.microsoft.com/en-us/library/ms177410.aspx

だろうが、この作品のようなもの:

SELECT SpreadsheetTitle, 
     WorksheetTitle, 
     row, 
     [1] AS Col1, 
     [2] AS Col2 
FROM (SELECT 'spreadsheet' SpreadsheetTitle, 'worksheet' WorksheetTitle, 0 Row, 1 AS [ColumnID], 1 VALUE 
      UNION ALL 
      SELECT 'spreadsheet' SpreadsheetTitle, 'worksheet' WorksheetTitle, 0 Row, 2 AS [ColumnID], 2 VALUE 
      UNION ALL 
      SELECT 'spreadsheet2' SpreadsheetTitle, 'worksheet' WorksheetTitle, 0 Row, 1 AS [ColumnID], 3 VALUE 
     ) AS flat PIVOT 
    (MAX(Value) FOR [ColumnID] IN ([1], [2])) AS pivoted 
関連する問題