CASEステートメントから実行中の合計を計算しようとしています。 私は2つのテーブル@report
と@question
と2つの変数@countCurrent
と@countSuggested
を持っています。SQLサーバーで合計を計算する
は、静的な値またはI @countCurrent
又は@countSuggested
のいずれかをインクリメントする必要@question
テーブルからの値のいずれかと比較@report
表中の数字をオフに基づいて。
これまで私がこれまで持っていたのは、いずれかの列で5の組み合わせを得る代わりに、私は0/1しか得られません。私はそれがJOINの一部だと思うが、私は何が見えない。
declare @MinSuccessRate float,
@countCurrent int,
@countSuggested int
declare @report table
(
intID int identity(1,1),
intReportID int,
intParticipantID int,
acceptable float,
optimum float
)
insert @report
select 1,1,.25,.75 union all
select 1,2,.45,.75 union all
select 1,3,.35,.75 union all
select 1,4,.55,.75 union all
select 1,5,.65,.75
declare @question table
(
intID int identity(1,1),
intParticipantID int,
answer float
)
insert @question
select 1,35 union all
select 1,55 union all
select 1,65 union all
select 1,75 union all
select 1,85
SET @MinSuccessRate=0.75
SET @countCurrent=0
SET @countSuggested=0
UPDATE @report
SET @countCurrent=
CASE WHEN acceptable>[email protected]
THEN @countCurrent+1
ELSE 0
END,
@countSuggested=
CASE WHEN optimum*100 >=q.answer
THEN @countSuggested+1
ELSE 0
END
FROM @report pr
INNER JOIN @question q
ON pr.intParticipantID=q.intParticipantID
WHERE pr.intReportID=1
select @countCurrent [Current],@countSuggested [Suggested]
ありがとうございます!
の可能複製(http://stackoverflow.com/questions/814054/complicated -sql-query-for-a-running-total-column) – JNK
なぜそれを総計と呼びますか?あなたや私が紛失しているものがない限り、それは平凡なものです。 – Quassnoi
いいえ、おそらく正しいタイトルではなく、幸いにも以下で解決されているということは間違いありません:) –