Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crystal reports 在Crystal Reports 11中独立报告多个表_Crystal Reports_Crystal Reports Xi - Fatal编程技术网

Crystal reports 在Crystal Reports 11中独立报告多个表

Crystal reports 在Crystal Reports 11中独立报告多个表,crystal-reports,crystal-reports-xi,Crystal Reports,Crystal Reports Xi,我正在使用Crystal Reports Developer Studio创建一个报告,报告两个不同的表,让它们分别为“ATable”和“BTable”。对于我最简单的任务,我想使用Total Running字段报告每个表的计数。我为ATable创建了一个(称为ATableTRF),当我在报告中发布它时,会发生以下情况: 1) SQL查询(显示SQL查询)显示: 2) 读取的总记录数是表中的记录数 3) 我得到的数字是正确的(ATable中的记录总数) BTableTRF也是如此,如果我删除了A

我正在使用Crystal Reports Developer Studio创建一个报告,报告两个不同的表,让它们分别为“ATable”和“BTable”。对于我最简单的任务,我想使用Total Running字段报告每个表的计数。我为ATable创建了一个(称为ATableTRF),当我在报告中发布它时,会发生以下情况:

1) SQL查询(显示SQL查询)显示:

2) 读取的总记录数是表中的记录数

3) 我得到的数字是正确的(ATable中的记录总数)

BTableTRF也是如此,如果我删除了ATableTRF,我会得到:

1) SQL查询(显示SQL查询)显示:

2) 读取的总记录数是B表中的记录数

3) 我得到的数字是正确的(BTable中的总记录)

当我将两个字段都放在报告上时,问题就开始了。然后,我一个接一个地得到两个查询(因为在crystal reports中表没有链接):

而且记录读取的数量远远大于每个表-它不会停止。我会验证它的计数(ATable)xcount(BTable),但这将超过我的计算机的限制(可能-一个约为300k行,另一个约为900k行)

我只想报告两张桌子的数量。不需要相互作用——但水晶以某种方式加强了相互作用

有人能帮忙吗


谢谢

除非有一些连接描述两个表的关系,否则结果将是笛卡尔积。尝试只使用两个子查询(通过SQL命令或作为单个SQL表达式)来获取行数。例:

从ATABLE中选择count(不同的ATABLE_键)


如果除了行计数之外,您对这些表中的任何其他内容都不感兴趣,那么就没有理由将所有这些行都放入Crystal中-最好在RDBMS上执行繁重的操作。

除非有一些连接描述两个表的关系,否则结果将是笛卡尔积。尝试只使用两个子查询(通过SQL命令或作为单个SQL表达式)来获取行数。例:

从ATABLE中选择count(不同的ATABLE_键)


如果除了行计数之外,您对这些表中的任何其他内容都不感兴趣,那么就没有理由将所有这些行都放入Crystal中-最好在RDBMS上执行繁重的工作。

您可以合并这两个查询。这将为您提供一个记录集,其中包含来自每个查询的行。

您可以合并这两个查询。这将为您提供一个记录集,其中包含来自每个查询的行。

谢谢。我看了更多,确实发现crystal在两张桌子上表现出笛卡尔积。但是,我需要对数据进行额外的操作。例如,使用参数等。当使用参数时,我不能使用SQL表达式字段或创建聚合视图来显示我需要的内容。不过,我需要在两个不同的表格上报告。有没有一种方法可以在同一个报告中报告两个不同的表,而不进行任何连接?再次感谢@user1177650这不仅仅是Crystal,当没有定义关系时,任何RDBMS都会在表之间创建笛卡尔乘积。如果要从两个不相关的表中获取数据,可以创建SQL命令并编写自己的子查询作为数据源。这支持参数。谢谢大家。让我困惑的是,“Crystal Reports”强制执行一个连接,而我没有意识到这一点。这就是说,很明显,如果没有指定其他方法,将执行笛卡尔积。在我看来,join的这种强制执行是一个巨大的缺点,因为它不允许在同一个报告中独立报告两个或多个不同的表,而这些表之间没有任何链接。谢谢Ryan。我看了更多,确实发现crystal在两张桌子上表现出笛卡尔积。但是,我需要对数据进行额外的操作。例如,使用参数等。当使用参数时,我不能使用SQL表达式字段或创建聚合视图来显示我需要的内容。不过,我需要在两个不同的表格上报告。有没有一种方法可以在同一个报告中报告两个不同的表,而不进行任何连接?再次感谢@user1177650这不仅仅是Crystal,当没有定义关系时,任何RDBMS都会在表之间创建笛卡尔乘积。如果要从两个不相关的表中获取数据,可以创建SQL命令并编写自己的子查询作为数据源。这支持参数。谢谢大家。让我困惑的是,“Crystal Reports”强制执行一个连接,而我没有意识到这一点。这就是说,很明显,如果没有指定其他方法,将执行笛卡尔积。在我看来,join的这种强制执行是一个巨大的缺点,因为它不允许在同一个报告中独立地报告两个或多个不同的表,而在它们之间没有任何链接。
SELECT "ATABLE"."ATABLE_KEY"
FROM   "DB"."ATABLE" "ATABLE"
SELECT "BTABLE"."BTABLE_KEY"
FROM   "DB"."BTABLE" "BTABLE"
SELECT "ATABLE"."ATABLE_KEY"
FROM   "DB"."ATABLE" "ATABLE"

SELECT "BTABLE"."BTABLE_KEY"
FROM   "DB"."BTABLE" "BTABLE"