首页 > 解决方案 > Access 2016 中的转置或旋转

问题描述

我想知道如何转置或透视包含客户编号、月份和数量的表,以便在 Access 2016 中易于理解。我使用查询,因为我发现它们更容易。因此,如果有人可以帮助我获得解决方案的功能或程序,那将是非常有帮助的。

为了澄清,我想更改下表,只有两行具有 CustomerNo。11 和 12,以便在每个月下列出数量。

CustomerNo.| Quantity | Month
==============================
11         | 22       | Jan 18
11         | 20       | Feb 18
11         | 18       | Mar 18
12         | 10       | Jan 18
12         | 8        | Feb 18
12         | 15       | Mar 18

预期输出:

                |Jan 18 | Feb 18 | Mar 18 
   Customer No. |       |        |
 ==========================================
    11        |  22     |  20    |  18
    12        |  10     |  8     | 15

谢谢 !

标签: sqlms-access-2016

解决方案


据我所知,目前没有 PIVOT 功能可以访问。但是您可以根据现有数据创建数据透视表。在此视频中,解释了如何https://www.youtube.com/watch?v=ZgerpTHzQes

或者,您将需要这样的 IIF 语句:

Select [CustomerNo.], 
SUM(IIF([Month] ="Jan 18", [Quantity], 0 ) AS [Jan 18],
SUM(IIF([Month] ="Feb 18", [Quantity], 0 ) AS [Feb 18],
......
SUM(IIF([Month] ="Last month", [Quantity], 0 ) AS [Last month]

GROUP BY [CustomerNo.]

坏事是你每个月都需要更新你的脚本。如果您有更好的解决方案,我将不胜感激。


推荐阅读