2017-07-05 7 views
-1

次の数週間は、製品の在庫を取得するためのクエリを作成する必要があります。時間内の製品の在庫

私たちには4種類の注文があります。請求書があります。

A)配送予定日

Bを有している供給業者からの注文)は、それらの注文から変換し、それらはまた、推定実行日付とクライアントの

C)注文日付を持っているサプライヤーからの請求書を日付

Aとクライアントのための

d)の請求書には、(b)は、私たちのテーブルに量を追加しようとしている

C、Dは、例えば、私たちのテーブル

からの数量を削除しようとしている。

私たちは週27に、現在であり、私たちは、7月(28週)の12時、我々は製品の100個を受けることを知っていますA.

その後

クライアントすでに事前注文した7月(30週)の実行日25と50個を、私たちは私たちがしている場合は週30

で製品Aの量を減らす必要があります順序を持っています8月2日に100個以上を受け取ると、31週目に表は見積もり数量を計算します:

Week27 - 0 pcs 
Week28 - 100 pcs (we will receive 100 pcs) 
Week29 - 100 pcs (nothing was sold) 
Week30 - 50 pcs (we will sell 50 pcs so the remaining quantity is 50) 
Week31 - 150 pcs (we will receive 100 pcs so the remaining quantity will be 150) 
+2

あなたは何を試しましたか?あなたのコードはどこですか? –

+2

ようこそ。 [ツアー]を取って[ask]を読んでください。 SOはコード作成サービスではありません。 *具体的な質問がある場合は、お知らせください。がんばろう。 – OldProgrammer

答えて

0

倉庫管理システムまたはERPシステムでは、これはかなり一般的な要件です。ほとんどの場合、同様の方法でこれを実行します。すべてのトランザクションを正数または負数のいずれかに格納します。各日付について、その日より前のすべての取引を合計します。

擬似コードは、次のように明らかにデータベーススキーマに合わせて実装します。

私は仕事ができると思う解決策を見つけた
Select 
    Week, 
    (Select 
      Sum(Quantity) from 
      Transactions 
      where date < Weeks.EndDate) as ClosingBalance 

from Weeks 
-1

まず私はここでz_531という名前の私達のデータベースでビューを作成しました我々は

などの製品情報とも日付ですべてのnessecare行を収集それから私は、クエリで累積和を作ってみました:

`SELECT日付、製品、[数量A]、[インポートの輸出日]、[輸入の週]、[輸入の年]、クライアント、 (SELECT SUM([数量A])AS Expr1 FROM dbo WHERE([輸出入のWekk] < = dbo.z_531。[輸出入の週])と([製品] = dbo.z_531。[製品]))[在庫数]

AS B AS .z_531 [製品]、[インポートエクスポートの日付] BY dbo.z_531

ORDER FROM `

=私の和製品にdbo.z_531を加えることで。[製品]私は、製品ごとに、また、週によって合計を区切っています。

私はその最速の方法ではないと思いますが

関連する問題