我正在尝试根据几个表格设置报告。
我有一张表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
以便将数据放入我正在寻找的形状中?对于下一步该去哪里感到困惑...
Target
的问题。我修改了向导生成的SQL,试图得到我想要的东西,但它没有成功。我使用的GroupActual
版只有weekEndDate
,status
和weeklyTarget
列;这是SQL:
TRANSFORM weeklyTarget
SELECT status
FROM TargetStatus_forCrosstab_Target
GROUP BY status,weeklyTarget
PIVOT Format([weekEndDate],"Short Date");
答案 0 :(得分:1)
你快到了。问题是您无法在单个交叉表中完成所有操作。您需要制作3个交叉表(一个用于'实际',一个用于'目标',一个用于'累积'),然后创建一个联合查询以将它们全部组合。
其他提示:在各个交叉表中,添加“排序”列。您的“实际”交叉表的排序值为1,“目标”的排序值为2,“累计”排序为3.这样,当您将它们合并在一起时,您可以按正确的顺序排列它们