如何将一行中的字段转换为列?

3 ms-access pivot crosstab

我有一个表格,如:

          Cost     Rate

          Repair   12
          Repair   223
          Wear     1000    
          Wear     666
          Fuel     500
          Repair   600
          Fuel     450
          Wear     400
Run Code Online (Sandbox Code Playgroud)

我希望这些数据作为列(修复,磨损,燃料):

         Repair    Wear   Fuel
           825     2066    950
Run Code Online (Sandbox Code Playgroud)

我怎么能使用MS Access查询?

dla*_*lin 5

虽然有一个传统的SQL解决方案,这是非常kludgy,阅读此页面提醒我,MS Access有一个TRANSFORM ... PIVOT语句,您可能应该研究并使用它来执行此操作.

我不能肯定,但它应该看起来像:

TRANSFORM Sum([Items].[Rate]) AS SumOfRate 
SELECT [Items].[Costs] 
FROM Items 
GROUP BY [Items].[Costs] 
PIVOT Format([Items].[Costs]);
Run Code Online (Sandbox Code Playgroud)

它可以比这更好.例如

PIVOT Format([Items].[month],"mmm") In ("Jan","Feb",...,"Nov","Dec");
Run Code Online (Sandbox Code Playgroud)