0

2つの異なるテーブルから2つの列を必要とする乗算を実行して、結果を別のクエリで使用しています。SQLテーブルをパラメータとして渡しますか?

SELECT SUM(A.salesAmt * B.sales%) AS rebateAmount 

ここでは、テーブル値関数を使用できますか、それとも適切なのでしょうか?テーブルAとBの両方をパラメータとして渡して、最終的にrebateAmountを合計として返すことができますか?

  • 表Aに含まれています:salesID, salesAmt
  • 表Bが含まれています:salesID, sales%

可能であれば(salesAmt * sales%) as rebateAmountの合計を返すようにTVFいかがですか?これはSQL Server 2014です。

ありがとうございます。

答えて

0

テーブルをパラメータとして渡しても、問題が解決されないようです。

が代わりに簡単な方法があるように思われる: - 作成一時テーブルは、テーブル#A(salesID int型、salesAmt進(15,2)) 表の#Bを作成します(salesID int型、salesPerc小数(5を作成し 、 2))

-- insert data 
Insert into #a 
Select 1, 2567.34 
Union 
Select 2, 335.57 
Union 
Select 3, 95.35 
Union 
Select 4, 303.83 
Union 
Select 5, 743.66 

-- insert data 
Insert into #b 
Select 1, 4.5 
Union 
Select 2, 10.0 
Union 
Select 3, 2.5 
Union 
Select 4, 6.0 
Union 
Select 5, 20.0 

-- to get the data of individual columns + the multiple of the salesAmt & salesPerc 
Select a.*, b.salesPerc, convert(decimal(15,2), a.salesAmt * b.salesPerc)      as Mult from #a a inner join #b b on a.salesID = b.salesID 

-- to get the sum of the multiple of the salesAmt & salesPerc 
Select Sum (convert(decimal(15,2), a.salesAmt * b.salesPerc)) as SumOfMult from #a a inner join #b b on a.salesID = b.salesID 
関連する問題