2

我正在尝试将 MS Access Cross Tab 查询转换为 SQL Server 存储过程,但在 SQL Server 中透视数据时遇到问题。

这是我要转换的 MS Access 交叉查询 -

TRANSFORM Sum(NZ(Actuals!Amount,0)) AS Amount
SELECT Actuals.PS_OV, Actuals.Period, Actuals.Program, Actuals.Actuals_Year
FROM Actuals
GROUP BY Actuals.PS_OV, Actuals.Period, Actuals.Program, Actuals.Actuals_Year
PIVOT Actuals.Source;   

列中的值Source(即Equipment, Expense, Furniture, Leasehold)被透视到列。请建议如何在 SQL Server 存储过程中执行此操作?

非常感谢。

4

1 回答 1

3

在 SQL Server 中,您PIVOT会像这样:

SELECT *
FROM 
(
  SELECT PS_OV
    , Period
    , Program
    , Actuals_Year
    , IsNull(Amount, 0) as Amount
    , Source
  FROM Actuals
) x
PIVOT
(
  Sum(Amount)
  FOR Source IN ([Equipment], [Expense], [Furniture], [Leasehold])
) p
于 2012-07-26T10:28:55.303 回答