Crystal Reports-SQL的某些输出未显示

Crystal Reports-SQL的某些输出未显示,sql,stored-procedures,crystal-reports,Sql,Stored Procedures,Crystal Reports,我目前正试图修复Crystal Report/SQL存储过程的一个问题,该存储过程与未显示的存储过程返回的某些行有关 一点背景:存储过程从某个表中获取记录,并包含一个WHERE子句,该子句与表中的两个外键匹配。crystal报告显示此过程返回的行。出现了一个问题,输入到表中的数据可能缺少给定的外键之一。然后,存储过程将无法返回该行 已决定将存储过程WHERE子句更改为仅与其中一个键(保证该行具有的键)匹配。目前还不记得为什么需要检查另一把钥匙,原因已随时间而消失:/ 在任何情况下,都进行了更改,

我目前正试图修复Crystal Report/SQL存储过程的一个问题,该存储过程与未显示的存储过程返回的某些行有关

一点背景:存储过程从某个表中获取记录,并包含一个WHERE子句,该子句与表中的两个外键匹配。crystal报告显示此过程返回的行。出现了一个问题,输入到表中的数据可能缺少给定的外键之一。然后,存储过程将无法返回该行

已决定将存储过程WHERE子句更改为仅与其中一个键(保证该行具有的键)匹配。目前还不记得为什么需要检查另一把钥匙,原因已随时间而消失:/

在任何情况下,都进行了更改,但是没有显示受影响的行。直接运行存储过程时,可以看到正确的输出

我的问题:是否有一种方法可以根据字段的值限制Crystal报表中的结果集,类似于SQL查询中的WHERE子句,这可能会导致某些记录不显示在报表中

另外:整个结果集可能无法显示的任何其他原因?要检查的地方


我是一个完全的Crystal Reports新手。

表格链接正确吗?听起来这可能是一个内部连接与外部连接的问题


关于限制水晶内部结果的部分-如果我理解正确,您需要使用select expert。选择有问题的字段并选择类似“不等于”的内容,然后将值放入。

因为您可以看到从存储过程返回的记录。。。以下几点将对您有所帮助:

  • 选择crystal report中的专家作为where子句。。。因此,如果希望将数据限制在报告中,则可以将条件放置在select expert中
  • 如果您在报告中使用参数,并且参数中的值与存储过程返回的数据不匹配,则CR也将为空
  • 检查到crystal report的数据库连接是否连接到正确的数据库

  • 我确实连接到了正确的数据库,我正在手动更改测试数据,并查看它在CR中的反映。CR返回一些数据,其行为就像存储过程没有更改一样,只返回带有两个键的行。我在文档中看到了“精选专家”,但我不知道如何查看现有条件,只知道如何添加新条件。您能否详细说明如何使用“选择专家”查看是否存在应用的条件?要查看“选择专家”<代码>转到报告--->选择专家在那里您可以检查是否存在任何条件。。通常情况下,如果该值为空,则表示应用了select expert,但如果仍要检查,则转到
    数据库-->显示sql查询
    ,在那里可以看到生成的查询并检查任何where子句。既然您说您已经更新了过程,请尝试一下
    Database-->Verify Database
    ,以便加载任何更改。因此,出现了一个新的发展。报告使用了两个存储过程来返回不同的信息。我不知道它们之间有任何联系,但当你查看数据库专家时,有某种联系正在进行。这似乎是两把钥匙的必要条件。我不太愿意把这个作为答案,因为我仍然不知道具体发生了什么。不过,问题已经解决了,所以感谢所有的帮助。如果有人能想办法解释两个存储过程之间的连接是如何工作的,我很想以此作为这个问题的答案。谢谢