【问题标题】:crystal reports retrieve a value based on another value in same table水晶报表根据同一个表中的另一个值检索一个值
【发布时间】:2018-09-24 10:01:43
【问题描述】:

Crystal 新手,使用 SAP Crystal Reports 2013,我需要根据同一表中不同字段中的记录值返回一条记录作为我的详细信息部分的一部分。

我有一张桌子,SAMPLE:

SAMPLE_NUMBER   TEXT_ID       ORIGINAL_SAMPLE   TEST
1               ParentID27    1                 F
2               ChildID27_1   1                 F
3               ChildID27_2   1                 T
4               ChildID27_3   1                 F

SAMPLE_NUMBER 2,3 和 4 都与 SAMPLE_NUMBER 1 相关,此链接在 ORIGINAL_SAMPLE 字段中维护。

在我的水晶报告中,我需要返回 TEST = T 的所有记录以及以下信息。

SAMPLE_NUMBER   PARENT_TEXT_ID     TEXT_ID      
 3              ParentID27         ChildID27_2  

在 SQL 中,我只需将表连接到自身,如下所示。

SELECT  S.SAMPLE_NUMBER, Z.TEXT_ID AS PARENT_TEXT_ID, S.TEXT_ID
FROM SAMPLE Z JOIN SAMPLE S ON Z.SAMPLE_NUMBER = S.ORIGINAL_SAMPLE
WHERE S.TEST = 'T'

如何在我的报告公式字段中获得相同的结果?

【问题讨论】:

  • 谢谢兰,我会牢记这一点。

标签: crystal-reports sap


【解决方案1】:

再次将同一个表添加到报告中(它将作为别名添加,您可以更改)并加入。

使用与您的 SQL 相同的逻辑加入。 使用相同的逻辑过滤(记录选择公式):如您的 SQL 不需要公式。只需将所需的列拖到详细信息部分即可。

【讨论】:

  • 我已经添加了它,但我不确定如何构造公式以从 Crystal 中提取所需字段。
  • 您是在 Database Expert 中将表添加到数据库中并为其指定别名,还是从数据库中的表中再次将字段添加到报表中?这里的答案是告诉您使用别名将表添加到数据库中。然后你正确链接它并通过别名表引用该字段。
  • 感谢 MilletSoftware 和 R. McMillan,按照指示得到了它。我想得太简单了。
【解决方案2】:

只需使用命令并直接编写 SQL。数据库专家是一个非常有限的工具,如果您必须在 SQL 中进行更改,它将限制您。数据专家还可以生成单个 SQL 语句,而在命令中您可以创建脚本并处理多个语句中的数据(如果数据库支持)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多