从Crystal Reports中的报表中排除包含特定项目的订单

时间:2012-11-29 08:10:21

标签: crystal-reports

我正在构建一个计算订单处理时间的报告,但我们希望从报告中排除包含特定项目的所有订单。我有什么想法可以做到这一点吗?

数据库的(有关部分)很简单。

  • 包含订单ID,客户ID,订单放置时间,订单发货时间等订单的表格。
  • 带有物品的表格。
  • 链接订单和商品表的表格。 (的OrderItems)

链接订单和订单项,然后排除特定项目仍会计算并处理包含该项目的订单,因此我必须找到一种在order_id基础上排除的方法。

使用SQL我可以通过简单的查询获得要排除的订单列表:

SELECT DISTINCT order_id FROM orderitems WHERE item_id = 'Excluded item ID'

但是如何在Crystal Reports中使用此记录选择?我已经尝试将其作为SQL命令输入并将其与其余报告表取消链接,然后在记录选择中使用

not ({orders.order_id} in [{ordersToBeExcluded.order_id}])

但是没有给出正确的结果。

2 个答案:

答案 0 :(得分:1)

根据偏好的顺序,我会想到一些选择:

  1. 在SQL中完成工作。使用视图将数据显示给已包含已排除的订单的Crystal

  2. 使用像isnull((select top 1 1 from orderitems where orderid = X and orderitemid = Y),0)这样的子查询创建一个sql表达式。然后在您的选择条件and sqlexpression = 0

  3. 中使用此选项
  4. 使用组选择专家来抑制计数的组({specialitem},{group})> 0

  5. 使用仅计算count({specialitem},{group})>的运行总计0

答案 1 :(得分:0)

您还可以使用排除(!=)执行完全外部联接,或尝试使用{orders.orders_id}<> {ordersToBeExcluded执行报表过滤器(报表 - >选择公式 - >记录)。 orders_id}