0

注: データベースに変更を加えているわけではありません。レポートを作成しています。

このレポートの目的は、出荷のために組み立てる必要がある保留中の注文を表示することですが、注文を満たすのに十分な在庫があるまでは表示されません。注文には複数の在庫品目が含まれますが、在庫は各在庫品目ごとの注文金額以上である必要があり、注文をレポートに追加するには、日付が古い順に並べる必要があります。

注文をプルする場所にこれを書きましたが、次の注文にループして、この注文の前の計算から手持在庫の数量を引き継ぐ必要があります。計算が 0 未満の場合、順序を確認する必要はありません。

出力例:

Order Date | Order No | Item No | Quantity Ordered | On Hand | Available Qty

2015-01-01     123456     555555    50                 60        10
2015-01-02     555544     555555    10                 10        00

手持通知には、最初の行のアイテム番号 555555 に対して 60 と表示されています。これは実際の QOH ですが、レポートでは、前の行で注文した金額を手持在庫から差し引いて残りを表示するか、新しい利用可能な合計を手持の下に表示する必要があります。手持金額で注文を処理できない場合、その注文をレポートに表示したくありません。私の現在のレポートでは、両方の行で手持在庫が 60 であることが示されています。上記のようにゼロではなく、60 から 10 を引くだけで、それが私の唯一の注文であるかのように見えます。

フィールドでこのタイプの増分変更を行うためにどのようなアプローチを取るべきかわかりませんが、ループと変数が含まれていると想定しています (変数を追加する必要がある場合は、実際の数量から始める必要があります。手)、 ????誰かが私に指示を手伝ってくれませんか?これに答えようとする私の検索は、これを行う方法がわからなくなっただけです。SQL を提供することはできますが、かなり複雑なので、より一般的なレベルにとどめようとしています。

4

1 に答える 1

0

「ループ」は、SQL での最後の手段として使用する必要があります。CURSORを使用してこれを行うことができますが、実行が遅くなる傾向があり、標準の SQL コマンドよりも多くの作業が必要になります。

サブクエリ / CTE (Common Table Expressions) を使用して、この問題を小さなテーブルに分割することをお勧めします。各品目番号の合計手持金額を表示するクエリを作成できますか? それをサブクエリに入れて、その上に構築を開始します。

于 2015-06-12T17:16:35.750 に答える