VB.net

2016-03-23 9 views
-1

enter image description here同じID異なる有効期限を更新する最初の写真はItemID異なるExpirationVB.net

enter image description here

同じであり、第二の絵は、なぜ、あなたはQuantityが297で見ることができます私の取引である私在庫あり最初のBatchIDが1であるのでは12であり、2番目はBatchID 2で285 Quantityであり、SUM(Quantity)Transactionであり、冗長化されていないため、私の数量は297です。

enter image description here

今私の問題は、どのように私はこれをコーディングすることができます。

私は最初BatchIDを持っていると第二BatchIDは私が15pcs最初BatchIDは今0pcsを有し、第2 BatchIDは282を持っていることを買えば何が起こるか15pcsを購入したい、今297の285pcs合計を持っている12PCS Quantityが持っています... 。

私のプログラムでは、-3pcsうと285pcs

は、最後の写真は、数量は私は非常に感謝助けてください、更新のための私のコードです

+0

控除は、-12と-3に払い戻す必要があります。 – StingyJack

+0

あなたはどういう意味ですか? – Leira

+0

クエリを投稿する – Dejan

答えて

0

あなたはから各バッチのレコード数を取得する必要がありますt彼はあなたがそれらから控除する必要がどのくらいを決定します。データベーステーブルは、更新を実行するときに同じItemIDのQtyフィールドを共有することを意味することはわかりません(しかし、そのような種類のロジックをストアドプロシージャに入れることができます)。我々はデータを読んでいるよう

いくつかの擬似コードは、他のいくつかのポイント

Dim totalQty as Integer = 15 
'Open a new SqlConnection 
'Query for all rows for ItemID = 5 and put them into a data table variable "dataTable" 
'Close the connection 

Dim quantsToDeduct as new Dictionary(Of Integer, Integer) 'Consider using a Tuple<int, int, int> if you need to also calculate the price of these also. 
For each DataRow in "dataTable" 
    Dim rowQty as Integer = Convert.ToInt32(row["Quantity"]) 
    Dim qtyToDeduct As Integer = 0 
    If totalQty - rowQty >= 0 Then 
    qtyToDeduct = totalQty 
    quantsToDeduct.Add(Convert.ToInt32(row["BatchID"), qtyToDeduct) 
    totalQty = totalQty - qtyToDeduct 
    Else 
    qtyToDeduct = rowQty 
    quantsToDeduct.Add(Convert.ToInt32(row["BatchID"), qtyToDeduct) 
    totalQty = totalQty - qtyToDeduct  
    End If 

    If totalQuantity <= 0 Exit For 
End For 

For Each quantToDeduct in quantsToDeduct 
' Issue the update statement for the batchID (quantToDeduct.Key) and the quantity (quantToDeduct.Value) 
End For 

より有用である可能性がある...コードの

  • 上記ビットは、おそらく計算、のTransactionScopeに包まれるべき元のデータに基づいて更新を行います。商品の
  • 数量は常に(アイテムは重量で販売されているか、パーシャルとして販売することができる場合のように)、そう
  • あなたは量から控除することをお勧めします数量フィールドの小数点以下を使用することを検討して整数ではないかもしれません最も古い在庫が最初に販売されるようにExpirationDateの順に並べ替えます。
+0

こんにちはbtwは何ですかTOTALQTYとしての整数= 15の意味ですか? – Leira

+0

"今私は15個買うと思う"とは、あなたが行全体を差し引いた総量です。 – StingyJack