Crystal reports Crystal Reports按字段的最新日期筛选

Crystal reports Crystal Reports按字段的最新日期筛选,crystal-reports,Crystal Reports,我有一个通过ODBC连接创建的报表。该报告包括多张发票,每张发票有多个产品。还有一个表,其中包含每个产品字段的所有历史价格变化:单价。目前有重复的产品记录被提取,每次价格变化一次。因此,我需要过滤我的数据,以便只有最近的单价显示在日期字段:生效日期。我如何通过Select Expert做到这一点 简而言之,显示最近生效日期的产品单价 谢谢大家! 而不是在select expert中执行此操作。按生效日期分组并将排序设置为降序。您需要创建一个sql表达式字段以获取最近的生效日期,然后在记录选择公式

我有一个通过ODBC连接创建的报表。该报告包括多张发票,每张发票有多个产品。还有一个表,其中包含每个产品字段的所有历史价格变化:单价。目前有重复的产品记录被提取,每次价格变化一次。因此,我需要过滤我的数据,以便只有最近的单价显示在日期字段:生效日期。我如何通过Select Expert做到这一点

简而言之,显示最近生效日期的产品单价


谢谢大家!

而不是在select expert中执行此操作。按生效日期分组并将排序设置为降序。

您需要创建一个sql表达式字段以获取最近的生效日期,然后在记录选择公式中使用此字段

// {%MAX_EFFECTIVE_DATE}
// most-likely you'll need to alias the table in the main report for this to work
(
SELECT Max(effective_date)
FROM   price_history
WHERE  product_id = price_history_alias.product_id
)
记录选择公式:

{price_history_alias.effective_date}={%MAX_EFFECTIVE_DATE}

除非您需要从数据库中检索所有这些数据,否则如果您只能从数据库中提取最新的生效日期,您的报告将生成得更快。如果你有一个很小的集合来处理,这可能不会有多大关系,但是你的方法不能很好地扩展。那么,我可以在Crystal中只从数据库中提取最近的有效日期吗?@user3616771:为什么不创建一个存储过程来为你提供正确的结果?我没有访问数据库的权限。我想出了解决办法。在“选择专家”中,您可以选择按组进行筛选。在这里,我使用了生效日期=maximumeffective date,product,它解决了问题。这仍然包括数据集中的所有产品,这使得我的计算不正确。是的,通过这种方法,它包括了所有。。如果您不需要创建参数,并在运行报告时给出需要检索的内容的值,并在select expert中提供该参数。真不敢相信我刚才看到了这一点。我从未在CR中使用过SQL表达式字段,即使是最基本的查询,我也会不断遇到错误。这是一个语法问题吗?从APPRISE.PUB.product\u price中选择生效日期,其中product\u price.product-key='1004138'您需要将所有内容用括号括起来。