別の列に基づいて1つの列にSQLの値を累積する方法は?

ジョーイ

下の最初の表に結果を蓄積しようとしていItemIDます。この表には、2番目の表の数量と乗数に基づいた個別のものが含まれています。UPDATEレコードを試しました

SET ItemCount = ItemCount + ((SELECT [Multiplier] FROM Table2 WHERE Table1.[ItemID] = Table2.[Item1ID]) * (SELECT [Item1Qty] FROM Table2 WHERE Table1.[ItemID] = Table2.[Item1ID])) + ((SELECT [Multiplier] FROM Table2 WHERE Table1.[ItemID] = Table2.[Item2ID]) * (SELECT [Item2Qty] FROM Table2 WHERE Table1.[ItemID] = Table2.[Item2ID]))

しかし、SELECTステートメントが複数の値を返すため、これは失敗しました表3に示す結果を得る最も効率的な方法は何ですか

ItemID      ItemCount
10001
10002
10003
10004

Item1ID     Item1Qty        Item2ID     Item2Qty     Multiplier
10001       1               10003        3            4
10004       3               10002        5            2
10003       3               10001        4            3

ItemID      ItemCount
10001       16
10002       10
10003       21
10004       6
artsathian

これは機能します:

Declare @Table as Table (Item1ID varchar(10),Item1Qty int,Item2ID varchar(10),Item2Qty int,Multiplier int)
Insert into @Table Values
('10001',1,'10003',3,4),
('10004',3,'10002',5,2),
('10003',3,'10001',4,3)

Declare @Table1 as Table (Item1ID varchar(10),ItemCount int)
Insert into @Table1 Values
('10001',NULL),
('10002',NULL),
('10003',NULL),
('10004',NULL)

;With T AS
(
Select Item1ID,Item1Qty,Multiplier from @Table
UNION
Select Item2ID,Item2Qty,Multiplier from @Table
)

Update T set T.ItemCount = S.ItemCount from @Table1 T
Inner Join (
Select Item1ID,SUM(Item1Qty*Multiplier) 'ItemCount' from T
Group by Item1ID
) S on S.Item1ID = T.Item1ID

作業サンプル

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

列の値に基づいて累積合計を持ち、groupbyを持つ2つの列を作成する方法

分類Dev

他の列の値に基づいて累積カウントを作成する

分類Dev

rの列の累積値に基づいてデータを分割する

分類Dev

別の列に基づいて累積合計をリセットする

分類Dev

Excelの非累積カテゴリ列に基づいて累積全体合計を動的に作成する方法

分類Dev

別の列の値に基づいて、1つの列をシフトする方法は?

分類Dev

Python(pandas、jupyter)の別の列の値に基づいて1つの列の値の平均を取得する方法

分類Dev

別の列に基づいて1つの列の値を減算する

分類Dev

別の列の値に基づいて1つの列の値を置き換える方法は?

分類Dev

別の列に基づいて重複の1つを削除する方法は?

分類Dev

SQLは、別の列の複製に基づいて1つの列の最大値を検索します

分類Dev

1つのサブ配列値に基づいてrubyで配列の個別の配列を生成する方法

分類Dev

新しいIDに対してのみ累積する別の列に基づいて累積列を作成する

分類Dev

別の列に基づいて1つの列要素のみの重複値を削除する方法

分類Dev

SQL別の列の値に基づいてブール列を作成する方法

分類Dev

列1の値に基づいて複数の列を2つの列にマージする方法は?

分類Dev

別の配列に基づいて1つの配列から値を削除する最速の方法

分類Dev

別の列の値に基づく列の累積合計(R)

分類Dev

グループ内の別の列に基づいて選択的な累積合計を高速化する

分類Dev

他のいくつかの列の条件に基づいて、別の列の値で列を埋める方法は?

分類Dev

属性値に基づいて配列を別の配列に分割する方法は?

分類Dev

Rの別の列の最小値に基づいて1つの列の対応する値を取得します

分類Dev

forループを使用して、別の列の値に基づいて1つの列の値を取得する

分類Dev

別の列の値に基づいて1つの列を合計します

分類Dev

SQL他の列の値に基づいて1つの行で列を複数回選択する方法

分類Dev

別の列の3つの条件に基づいて1つの列の値を設定する

分類Dev

条件に基づいて累進番号の列を追加する方法

分類Dev

別の配列の値に基づいて、1つの配列から複数の配列を作成する-python

分類Dev

Python:別の列要素に基づいて1つの列の空のセルの数を見つける方法は?

Related 関連記事

  1. 1

    列の値に基づいて累積合計を持ち、groupbyを持つ2つの列を作成する方法

  2. 2

    他の列の値に基づいて累積カウントを作成する

  3. 3

    rの列の累積値に基づいてデータを分割する

  4. 4

    別の列に基づいて累積合計をリセットする

  5. 5

    Excelの非累積カテゴリ列に基づいて累積全体合計を動的に作成する方法

  6. 6

    別の列の値に基づいて、1つの列をシフトする方法は?

  7. 7

    Python(pandas、jupyter)の別の列の値に基づいて1つの列の値の平均を取得する方法

  8. 8

    別の列に基づいて1つの列の値を減算する

  9. 9

    別の列の値に基づいて1つの列の値を置き換える方法は?

  10. 10

    別の列に基づいて重複の1つを削除する方法は?

  11. 11

    SQLは、別の列の複製に基づいて1つの列の最大値を検索します

  12. 12

    1つのサブ配列値に基づいてrubyで配列の個別の配列を生成する方法

  13. 13

    新しいIDに対してのみ累積する別の列に基づいて累積列を作成する

  14. 14

    別の列に基づいて1つの列要素のみの重複値を削除する方法

  15. 15

    SQL別の列の値に基づいてブール列を作成する方法

  16. 16

    列1の値に基づいて複数の列を2つの列にマージする方法は?

  17. 17

    別の配列に基づいて1つの配列から値を削除する最速の方法

  18. 18

    別の列の値に基づく列の累積合計(R)

  19. 19

    グループ内の別の列に基づいて選択的な累積合計を高速化する

  20. 20

    他のいくつかの列の条件に基づいて、別の列の値で列を埋める方法は?

  21. 21

    属性値に基づいて配列を別の配列に分割する方法は?

  22. 22

    Rの別の列の最小値に基づいて1つの列の対応する値を取得します

  23. 23

    forループを使用して、別の列の値に基づいて1つの列の値を取得する

  24. 24

    別の列の値に基づいて1つの列を合計します

  25. 25

    SQL他の列の値に基づいて1つの行で列を複数回選択する方法

  26. 26

    別の列の3つの条件に基づいて1つの列の値を設定する

  27. 27

    条件に基づいて累進番号の列を追加する方法

  28. 28

    別の配列の値に基づいて、1つの配列から複数の配列を作成する-python

  29. 29

    Python:別の列要素に基づいて1つの列の空のセルの数を見つける方法は?

ホットタグ

アーカイブ