首页 文章

MS Access SQL组合2个Pivot结果

提问于
浏览
0

继续数据here,有没有办法添加其他列,例如,我有下表:

Date       Quantity       Type       Cost     Date_Entered
01/02/15   23             Orange     452      10/01/15
01/02/15   10             Red        287      10/01/15
01/02/15   18             Yellow     315      10/01/15
02/02/15   15             Yellow     299      10/01/15
02/02/15   19             Red        320      10/01/15
.          .              .          .        .
.          .              .          .        .

日期是预计销售的日历日期,数量是销售数量,类型是产品类型(这可能因类型数量而异),成本是产品的总销售额,Date_Entered是数据的日期放入表格并给出其他列的预测 . 对于每个Date_Entered,都有日期范围(比如整个2015) . 对于每个日期,每种类型都可用 .

我的想法是达到这种布局:

Date        Orange    Orange ($)  Red    Red ($)  Yellow  Yellow ($)
01/02/15    3         60           2      35       5       100
02/02/15    0         0           -2     -35      -1      -23
03/02/15    8         115         -1     -20       3       55
.           .         .            .       .       .       .
.           .         .            .       .       .       .

其中值是特定日期的销售数量从一个Date_Entered到另一个Date_Entered之间的差异(例如,一周,一个月,一个季度的预计销售额的变化) .

现在,在本文顶部的链接中,已 Build 查询以在两个表中获取这些值(一个表包含数量,另一个表包含Cost) . 但是,我很难看到如何使用MS Access SQL将它们组合成上面结果的一个查询 . TRANSFORM ... PIVOT只能在一列上运行,而SELECT似乎无法将枢轴结果作为子查询处理 . 是否更容易将两个表输出到Excel中,然后将列与VBA混合在一起?

另外,为每种类型设置一个平均列也很好,但我认为这对SQL要求太多了 .

感谢您的回复 .

1 回答

  • 0

    正如您所说,Access中的交叉表不幸只能在一个结果列上运行 .

    在Access中实现所需功能的一种方法是创建两个“创建表”查询,每个查询包含一个交叉表 . 重要的是,每个交叉表查询都需要一个唯一的主键(即如果这是日期,那么您必须确保每个交叉表每个日期只有一行) .

    将两个交叉表结果作为表格后,可以使用其他查询和PK字段将它们连接起来 .

相关问题