1

我正在尝试基于多个表格设置报告。

我有一个Actual看起来像这样的表:

+--------+------+
| status | date |
+--------+------+
| 5      | 7/10 |
| 8      | 7/9  |
| 8      | 7/11 |
| 5      | 7/18 |
+--------+------+

Targets如下所示:

+--------+-------------+--------+------------+
| status | weekEndDate | target | cumulative |
+--------+-------------+--------+------------+
|      5 | 7/12        |      4 |         45 |
|      5 | 7/19        |      5 |         50 |
|      8 | 7/12        |      4 |         45 |
|      8 | 7/19        |      5 |         50 |
+--------+-------------+--------+------------+

Actual对它们所属的记录进行分组Targets.weekEndDate,我有以下聚合查询GroupActual

+-------------+------------+--------------+--------+------------+
| weekEndDate |    status  | weeklyTarget | actual | cumulative |
+-------------+------------+--------------+--------+------------+
| 7/12        | 5          |            4 |      1 |         45 |
| 7/12        | 8          |            4 |      2 |         41 |
| 7/19        | 5          |            5 |      1 |         50 |
| 7/19        | 8          |            4 |        |         45 |
+-------------+------------+--------------+--------+------------+

我正在尝试创建此报告:

+--------+------------+------+------+
| status | category   | 7/12 | 7/19 | ...etc for every weekEndDate entry in Targets
+--------+------------+------+------+
| 5      | actual     |   1  |    1 |
| 5      | target     |   4  |    5 |
| 5      | cumulative |  45  |   50 |
+--------+------------+------+------+
| 8      | actual     |   2  |      |
| 8      | target     |   4  |    5 |
| 8      | cumulative |  45  |   50 |
+--------------+------+------+------+

我可以使用交叉表查询来制作日期列,但我不确定如何为“实际”、“目标”和“累积”设置行。它们不是同一个表中的值,这意味着(我认为)交叉表查询对这种细分没有用处。我是否应该尝试进行更改GroupActual,以便将数据置于我正在寻找的形状中?有点困惑下一步该去哪里......

编辑:根据 PowerUser 的解决方案,我在交叉表上取得了一些进展,但我在使用Target. 我修改了向导生成的 SQL,试图得到我想要的,但它没有成功。我使用的版本GroupActual只有weekEndDatestatusweeklyTarget列;这是SQL:

TRANSFORM weeklyTarget
SELECT status
FROM TargetStatus_forCrosstab_Target
GROUP BY status,weeklyTarget
PIVOT Format([weekEndDate],"Short Date");
4

1 回答 1

1

您快到了。问题是您不能在一个交叉表中完成所有这些操作。您需要制作 3 个交叉表(一个用于“实际”,一个用于“目标”,一个用于“累积”),然后进行联合查询以将它们全部组合起来。

附加提示:在您的各个交叉表中,添加一个排序列。您的“实际”交叉表的排序值为 1,“目标”的排序值为 2,“累积”的值为 3。这样,当您将它们合并在一起时,您可以按正确的顺序获取它们.

于 2013-07-16T17:57:32.523 回答