2014-11-04 229 views
0

我正在將Access數據庫移動到SQL Server 2012.在網上閱讀了幾件事後,我遇到了Transform和Pivot。我在這裏發佈。如果可以,我怎樣才能將下面的查詢作爲View來遷移。Transform and Pivot in Access to SQL

TRANSFORM First([TABLE1].EFE) AS FE 

SELECT [TABLE1].COL1, First([TABLE1].EFE) AS [Total Of EFE] 
FROM [TABLE1] 
GROUP BY [TABLE1].COL1 
PIVOT [TABLE1].COL3; 

我很感謝您的幫助我對Access功能非常陌生。

+0

''[TABLE1] .COL3'的值是否有限?如果沒有,那麼你將不得不使用動態SQL,並且不能在視圖中使用。另外,在SQL Server中沒有真正的FIRST()函數 - 如果您使用一些示例數據和期望的結果來編輯帖子,它將更容易提供幫助。 – Taryn 2014-11-04 15:17:22

+0

表1中有50,000條記錄,對於col3,所有記錄都有2條記錄。 – AllPigsREqual 2014-11-04 16:08:24

回答

0

我正在做類似的轉換,並發現如果您的FROM設計正確,可以在TSQL中避免在Access中使用「Group By」。因爲PIVOT需要全表掃描,所以可能會發生意想不到的事情(即,如果FROM表具有TEXT列,即使該列不屬於您的查詢的一部分,它也會失敗)

我有過最好的結果是通過省略Group By語句並在FROM語句中使用子查詢。另外,我使用了MAX而不是First,如果您提供一些示例數據,這可能會起作用。