点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我想使用Crystal Reports命令来连接位于同一服务器上不同数据库上的两个表。 这可能吗? 它们都是Progress OpenEdge数据库。
通过数据库专家通过链接来自不同数据库的表,我无需命令即可轻松完成此操作。 但是当无法或很难通过Crystal中的过滤器和公式进行操作时,经常可能需要将整个查询作为SQL命令编写。
一个非常简单的示例,仅用于说明。 不同数据库上的两个表:
HB-CLAIM-PERSON和CO-PERSON,将分别加入PERSON-REF。 不使用命令进行设置,检索HB-CLAIM-PERSON.PERSON-TYPE和CO-PERSON.SURNAME,将导致以下SQL:
ORopenrev 选择" HB_CLAIM_PERSON"。" PERSON-TYPE"," HB_CLAIM_PERSON"。" PERSON-REF" 来自" OPENREV"。" PUB"。" HB-CLAIM-PERSON"" HB_CLAIM_PERSON" 外部联接HB_CLAIM_PERSON.PERSON-REF = {?ORcore:CO_PERSON.PERSON-REF}
ORcore 选择" CO_PERSON"。" SURNAME"," CO_PERSON"。" PERSON-REF" 来自" CORE"。" PUB"。" CO-PERSON"" CO_PERSON" WHERE" CO_PERSON"。" PERSON-REF" = {?ORopenrev:HB_CLAIM_PERSON.PERSON-REF}
我希望自己能够在一个数据库中的单个命令中编写类似的内容。 即:
选择hcp1。" PERSON-TYPE",cp1。" SURNAME" 来自" OPENREV"。" PUB"。" HB-CLAIM-PERSON" hcp1 加入" CORE"。" PUB"。" CO-PERSON" cp1 开启hcp1。" PERSON-REF" = cp1。" PERSON-REF"
当然,除了上面的SQL必须在两个数据库中的一个或另一个上的Command中,因此不能按原样工作。
例如,如果我在" OPENREV"数据库上有该命令,将其联接到" CORE"数据库以复制上述伪查询的SQL语法是什么? Crystal本身似乎会生成一个EXTERNAL JOIN,但是我不确定如何在上面的查询中复制它。
这在SAP Business Objects Crystal Reports 2013支持包1,版本14.1.1.1036中。
预先感谢您可以提供的任何指针。
萨米人
嗨,萨米,
Crystal Reports需要与两个数据库建立连接以支持此操作。 不幸的是,唯一的方法是分别连接两个DB,然后在CR中将它们本地连接(就像您已经是)。
请记住,由于此类联接没有在数据库服务器上进行处理,因此报告的性能可能会很差。
>
PS:许多数据库都支持DB链接(连接到同一sql中另一个数据库中的表)。 请查看数据库指南,以了解是否可行。
-Abhilash
在这种情况下,不支持数据库链接,这很可惜 非常有用的解决方案。
我会坚持通过Crystal进行链接。 再次感谢您的帮助。
Sami
如果您的数据库支持数据库链接,那么最好的方法是从一个数据库(DB1)创建数据视图。 在另一个数据库(DB2)中。 然后,您将在连接到DB2的同时创建报告,并且视图将从DB1中提取数据。
-Dell
是的-如果戴尔有可能,那将是非常好的 。 通常,我仅需要来自其他("核心")数据库的几张表,并且这些表总是相同的。 因此,也许我们可以设置一些用于此目的的视图。 非常感谢您提供的指针。
Sami
一周热门 更多>