0

私は以前に本当に良い助けをいくつか受けました、そして私はそれに感謝しています. 私は別のレコード選択スナフを持っています。

  1. 終了日として設定する必要があるパラメーターがあります。

  2. state_change というタイトルのテーブルから、終了日の前に最新の状態を取得する必要があります。

  3. その期間に必要な状態にないレコードをレポートから除外する必要があります。

状態は現在、state_change.new_state に設定されています

( {@grouping} = "Orders" and rec_date < {?endDate} and {@state} in [0,2,5] )

OR

( {@grouping} = "Stock" and rec_date < {?endDate} and {@state} in [1,2,3,5,7] )

SQL クエリを実行してこの情報を取得できれば、おそらくうまくいくでしょうが、その方法がわかりません。

基本的に、@state は次のようにする必要があります。

Select max(new_state)  
From state_change
where change_time < {?endDate}  

ただし、アイテムごとのレベルです。

どんな助けでも大歓迎です。

4

1 に答える 1

1

おそらく、終了日のパラメーターを指定してコマンド オブジェクトを使用するか、パラメーター化されたストアド プロシージャを作成する必要があります。コマンド オブジェクトを使用すると、必要なすべての SQL を入力できます。たとえば、結果を終了日の前に最大の newState 値と結合することができます。

select itemID, new_state, rec_date, max_newState from
(select itemID, new_state, rec_date from table) t inner join
(Select itemID, max(new_state) as max_newState
    From state_change
    where change_time < {?endDate}  
    group by itemID) mx on t.itemid = mx.itemID and t.new_state = mx.max_newState

注文と在庫グループが同じテーブルにあるかどうかわかりません。そのため、正しい状態値によってセットを制限する方法がわかりません。

于 2012-08-21T18:06:30.853 に答える