我有通过ODBC链接的10个Postgres数据库,我在Crystal Reports中使用它。 这10个数据库都是相同的,相同的模式和表。
我需要同时从所有人查询10个数据库,以获得一个合并报告。这可能吗?如果是这样,我如何链接数据库以获得合并数据?
我将使用SQL查询来绘制数据。
提前致谢
答案 0 :(得分:1)
正确的方法是处理Crystal报表之外的数据源。我不熟悉Postgres,我不知道你是否可以链接表或数据库。在SQL Server中,您可以使用链接服务器,在MS Access链接表中,Postgres中应该有类似的概念。我们的想法是链接数据库外部的对象并在数据库中使用它。这将允许您准备这样的查询:
从server1.database1.table1中选择A,B,C 联盟 选择A,B,C FROM server2.database1.table1 联盟 从server3.database1.table1中选择A,B,C ... 联盟 选择A,B,C FROM server10.database1.table1
此查询(或视图)将包含所有信息,您可以在其上创建Crystal报表。 Crystal只使用一个数据库,包含查询的数据库,查询将处理其他数据库以收集数据。与将所有10个数据库的连接直接添加到Crystal报表的方法相比,这将更快。
我不认为子报告是一种选择。每个子报表将连接到一个单独的数据库,您将获得10个单独的子报表。您可以获得所有数据但是它将针对每个子报告进行排序,因此第一个数据库将具有A-> Z,然后第二个数据库具有A-> Z,依此类推。 Ther将是10个独立的数据集,它们将一起呈现,但仍然会像单独的记录集一样。
如果Postgres不支持链接数据库,您可以使用Access数据库作为代理,只需链接您的表并将其用作地点,这将合并数据