我正在构建一个计算订单处理时间的报告,但我们希望从报告中排除包含特定项目的所有订单。我有什么想法可以做到这一点吗?
数据库的(有关部分)很简单。
链接订单和订单项,然后排除特定项目仍会计算并处理包含该项目的订单,因此我必须找到一种在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}])
但是没有给出正确的结果。
答案 0 :(得分:1)
根据偏好的顺序,我会想到一些选择:
在SQL中完成工作。使用视图将数据显示给已包含已排除的订单的Crystal
使用像isnull((select top 1 1 from orderitems where orderid = X and orderitemid = Y),0)
这样的子查询创建一个sql表达式。然后在您的选择条件and sqlexpression = 0
使用组选择专家来抑制计数的组({specialitem},{group})> 0
使用仅计算count({specialitem},{group})>的运行总计0
答案 1 :(得分:0)
您还可以使用排除(!=)执行完全外部联接,或尝试使用{orders.orders_id}<> {ordersToBeExcluded执行报表过滤器(报表 - >选择公式 - >记录)。 orders_id}