2014-11-04 91 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,如果您提供一些示例数据,这可能会起作用。