0

注文の処理時間を計算するレポートを作成していますが、特定のアイテムを含むすべての注文をレポートから除外したいと考えています。これを達成する方法はありますか?

データベース (の関連部分) は非常に簡単です。

  • 注文 ID、顧客 ID、注文発注時間、注文発送時間などを含む注文のテーブル。
  • アイテムが並ぶテーブル。
  • 注文テーブルとアイテム テーブルをリンクするテーブル。(注文品)

注文と注文商品をリンクしてから特定の商品を除外しても、その商品を含む注文がカウントされて処理されるため、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}])

しかし、それは正しい結果をもたらしません。

4

2 に答える 2

1

いくつかのオプションが思い浮かびます-好みの順に:

  1. SQL で作業を行います。ビューを使用して、それらの注文が既に除外されているデータを Crystal に提示する

  2. のようなサブクエリを使用して SQL 式を作成しますisnull((select top 1 1 from orderitems where orderid = X and orderitemid = Y),0)。次に、これを選択基準で使用しますand sqlexpression = 0

  3. グループ選択エキスパートを使用して、count({specialitem},{group}) > 0 のグループを抑制します

  4. count({specialitem},{group}) > 0 の場合のみ評価する累計を使用する

于 2012-11-29T10:09:48.247 に答える
0

除外 (!=) を使用して完全な外部結合を実行するか、{orders.orders_id}<>{ordersToBeExcluded.orders_id} を使用してレポート フィルター (レポート --> 選択式 --> レコード) を実行することもできます。

于 2012-11-30T13:30:31.840 に答える