私はいくつかの計算方法で短いコードを書いています、そしてそれを実行するために一時変数を使用しています。
SELECT
ステートメントを割り当てているだけ@sum1
で機能しているのに、変更すると元@sum1 += SELECT...
に戻りNULL
ます(添付の画像を参照)
私はすでに次のことを試しました:
キャストを試みました(ただし、@ sum1とactivityDurは両方ともINTとして定義されています)
SELECT
ステートメントを1つの変数に割り当ててから、その変数を新しい変数に割り当てようとしました。ウェブ上で同様の問題を見つけようとしました(stackoverflowを含む)
どうも。
SET @sum1=0
WHILE @i <= 10
BEGIN
//**** HERE IS THE PROBLEM
SET @sum1 += (SELECT activityDur FROM dbo.tmp_activityCalculation WHERE RowNum = @i)
//****
IF (@sum1 > 200)
BEGIN
SET @index += 1
SET @sum1 = 0
END
INSERT INTO tmp_finalCalc (RowNum, activityID, activityDur,actDay)
SELECT
RowNum,
activityID,
activityDur,
@sum1
FROM tmp_activityCalculation WHERE Rownum = @i
SET @i += 1
END