1

前の行の値の一部を含む行の値を更新したい。(基本的にはキャリーオーバー効果を見つける必要があります)。

While looporを使用cursorして同じことをしていますが、更新ステートメントが行数回実行されるため、かなりの時間がかかります。

キャリーオーバー効果を見つけるための効率的な方法を教えてください。以下はdatasetキャリーオーバー効果0.2の例です。

WeekNumber Var1 carry_over_effect_0.2
1           10          10
2           30          30+0.2*10
3           80          80+(30+0.2*10)*0.2

等々

以下の例に示すように、もう1つ追加したい

Brand    WeekNumber Var1 carry_over_effect_0.2
x         1           10          10
x         2           30          30+0.2*10
x         3           80          80+(30+0.2*10)*0.2
y         1           40          40
y         2           50          50 + (40*0.2)

など... ブランドがここにあるため、完全なセットを 2 つ以上のサブセットに分割する 1 つ以上の重要な変数が存在する場合があります。

4

2 に答える 2

1

あなたの質問は明確ではありません。ただし、TRIGGERS の使用を検討してください

これが機能するかどうかはわかりません。

CREATE TRIGGER NAME
BEFORE INSERT INTO TABLE_NAME
FOR EACH ROW BEGIN
    WHERE (SELECT COUNT(*) FROM TABLE_nAME) > 0
    BEGIN
INSERT INTO TABLE-NAME
SELECT NEW.WEEKNUMBER, NEW.VAR1, (NEW.VAR1+S.CARRY_OVER_EFFECT *0.2) AS         CARRY_OVER_EFFECT
FROM 
TABLE-NAME S
WHERE S.WEEKNUMBER + 1= NEW.WEEK_NUMBER;
END
于 2013-04-03T06:25:44.240 に答える