首先,我想道歉,如果此问题已得到解答,但通过搜索找不到与我的问题有关的任何有用信息,因为我不知道确切的问题的名称。具有多个数据源的报告中的数据输出
首先,我有这些表:
表A:
ID | Title | many more fields
------------------------------
1 | title1 | ....
2 | title2 | ....
...
表B:
ID | project_ID | Date B | many more fields
-------------------------------------------
1 | 1 | 01.01.2017
2 | 1 | 01.02.2017
3 | 1 | 01.03.2017
4 | 2 | 02.01.2017
5 | 1 | 01.05.2017
6 | 3 | 01.03.2017
...
表C:
ID | project_ID | Date C | many more fields
-------------------------------------------
1 | 1 | 01.01.2017
2 | 2 | 03.04.2017
3 | 2 | 11.10.2017
4 | 3 | 05.01.2017
5 | 1 | 06.02.2017
6 | 2 | 07.08.2017
...
表d:
ID | project_ID | Date D | many more fields
-------------------------------------------
1 | 1 | 02.02.2017
2 | 2 | 03.03.2017
3 | 3 | 11.11.2017
4 | 1 | 04.04.2017
5 | 1 | 06.06.2017
6 | 2 | 07.07.2017
...
我的目标是一份报告,看起来像:
Title1
-------------------------------------------
Date B | Date C | Date D
01.01.2017 | 01.01.2017 | 03.03.2017
01.02.2017 | 06.02.2017 | 04.04.2017
01.03.2017 | | 06.06.2017
01.05.2017 |
Title2
-------------------------------------------
Date B | Date C | Date D
02.01.2017 | 03.04.2017 | 02.02.2017
| 11.10.2017 | 07.07.2017
| 07.08.2017
...
最好的结果与“访问报表生成器”在那里我得到的东西,如:
Date B | Date C | Date D | Misc
01.09.2017 | 28.08.2017 | 24.08.2017 | Title 1
01.09.2017 | 28.08.2017 | 25.08.2017 | Title 1
01.09.2017 | 28.08.2017 | 26.08.2017 | Title 1
01.09.2017 | 29.08.2017 | 24.08.2017 | Title 1
01.09.2017 | 29.08.2017 | 25.08.2017 | Title 1
01.09.2017 | 29.08.2017 | 26.08.2017 | Title 1
但你看它重复不应该发生的日期。即使隐藏重复项,也只能隐藏它们。日期D仍然会显示重复项。
上周我甚至有这样的事情:
SQL:
SELECT
P.ID,
P.title,
P_kov.ko_date AS dateKOV,
CVAR(NULL) AS dateAP,
CVAR(NULL) AS dateEP
FROM
P
LEFT JOIN
P_kov ON P.ID = P_kov.id_projekt
UNION
SELECT
P.ID,
P.title,
CVAR(NULL) AS dateKOV,
CVAR(NULL) AS dateAP,
P_ep.ep_date AS dateEP
FROM
P
LEFT JOIN
P_ep ON P.ID = P_ep.id_projekt
UNION
SELECT
P.ID,
P.title,
CVAR(NULL) AS dateKOV,
P_ap.ap_date AS dateAP,
CVAR(NULL) AS dateEP
FROM
P
LEFT JOIN
P_ap ON P.ID = P_ap.id_projekt;
注:我用CVAR因为它看起来像一个日期不能为空
结果:
Date KOV | Date AP | Date EP | title
01.09.2017 | | | Title 1
02.09.2017 | | | Title 1
| 28.08.2017 | | Title 1
| 29.08.2017 | | Title 1
| | 25.08.2017 | Title 1
| | 26.08.2017 | Title 1
但令人遗憾的是,该报告将每一个空白字段打印为新行。而我在VBA方面的技能并不好,我不知道如何将结果放入数组中,并将“已清除”的值放在文本字段中。
TLDR:我需要一个SQL查询这让我对我的期望的报告还是有办法来处理VBA多个数据源与操纵数据字段
为什么要在单个报告中做到这一点?您可以根据TableA创建报表,并为TableB,TableC和TableD添加子报表。这可以生成所需的输出,而无需编写困难的SQL查询。 –
你好Erik, thatnks for the tipp - 我试了一下,发现如何分组报告的工作(codenovice的评论也帮助)你的tipp与子报表工作像一个魅力 - 非常感谢 – Thorburn