私のMS SQLストアドプロシージャで配列を使用する機能がないと、効率的な計算方法を見つけることができません。さまざまな入力数を持つMS SQL Serverの効率的な計算
背景....
select child_id, sum(quantity) as quantity
from table
where parent_id = @parent_id
戻り、このような何かを....
child_id quantity
100 50000
200 60000
300 45000
400 30000
500 15000
これは私が助けを必要とするもの説明するための単純化されたSQL式です。数学がないことが重要です(大丈夫、それは意味がない場合 - 私が上から加算された量を使用する必要があるかを示すために簡略化されています)上記child_idのそれぞれについて
set @result = (2 * LOG(50000)) + LOG(60000) + LOG(45000) + LOG(30000) + LOG(15000)
...、I a(select child_id、@result)を実行します。 「アクティブな」child_idの合計量は、他のchild_ids(2 * LOG())のそれとは異なって扱われることに注意してください。また、child_idの数は2から20までの間で可変です。もしもchild_idが2つしかない場合、@resultは=(2 * LOG(50000)+ LOG(60000))となります。
ありがとうあなたが提供できるすべての提案について多くを提供しています。
上記の例では、child_id 200の結果はどうなりますか? –
Matt、Joe、Martin - ありがとう。私は単純化されていないアルゴリズムでCTEのアプローチがうまくいくかどうか(またはそれがどのように機能するのか)を確かめるために、もう少し考えなければならないでしょう。あなたの質問に答えるために、マットはchild_id 200の結果は=(2 * LOG(60000))+ LOG(50000)+ LOG(45000)+ LOG(30000)+ LOG(15000)となります。もう一度ありがとう。 – karman