2012-01-28 101 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.. 

我可以想办法通过写不进行-sql代码,但我很想知道是否可以沿着递归查询(也许)或透视函数的方式使用某些东西。

回答

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 
相关问题