2016-05-03 2 views
0

2つの列、数量と単価を持つorderItemsというテーブルがあります。そのテーブルには外部キーordernumberもあります。2つの列を掛けた後にテーブルから別のレコードにSUMを返す方法

私はプライマリキーordernumberと呼ばれる別のテーブルを持っています。このテーブルには、ordernumberを参照するすべてのオーダーアイテム行の数量*単価に基づく注文合計であるSavedTotalカラムが含まれています。

ここで私は、特定の注文番号に基づいてすべての注文アイテムを取得し、合計コストを計算できるSQLクエリです。

私はその乗算を行うことができましたが、私はSUMを見逃しています。これまでのSQLクエリ(SQL Serverベース)です。

UPDATE OrderGroupNew 
set OrderGroupNew.SavedTotal = OrderItemNew.UnitPrice*OrderItemNew.QUANTITY 
    FROM OrderItemNew 
    inner join OrderGroupNew on OrderItemNew.OrderNumber=OrderGroupNew.OrderNumber 

任意のヘルプは

答えて

1
UPDATE OrderGroupNew 
SET SavedTotal = (
    SELECT SUM(UnitPrice * Quantity) 
    FROM OrderItemNew 
    WHERE OrderNumber = OrderGroupNew.OrderNumber 
) 
+0

感謝します! –

0

を高く評価しているあなたにもTVPを使用することができます。

;With o as (
     select OrderItemNew.OrderNumber as OrderNumber, 
     SUM(OrderItemNew.UnitPrice*OrderItemNew.QUANTITY) as OrderSum 
     Group by OrderItemNew.OrderNumber) 
UPDATE OrderGroupNew 
set OrderGroupNew.SavedTotal = o.OrderSum 
FROM o 
INNER JOIN OrderGroupNew on o.OrderNumber=OrderGroupNew.OrderNumber 

まあ第一の答えがあまりにも正確です。パフォーマンスの面で最高のものを選んでください:)(正直に言うと、どれがベストになるのかわかりません)

+0

私のアプリケーションはデモ用ですから、パフォーマンスについてはあまり気にしません。他の人もこのように働いています:)これを書く時間をとってくれてありがとう!将来他の人に役立つかもしれません! –

関連する問題