別のテーブルから情報を収集して要約を更新するカーソルがあります。これは、頭痛の種となるコード スニペットです。
男性と女性の正確な情報を入力して集計表を更新しようとしています。この情報を合計すると患者の総数になります。
BEGIN
Set @MaleId =154
set @Femaleid =655
if @Category =@MaleId
begin
set @Males = @Value
end
if @Category = @Femaleid
begin
set @CummFemalesOnHaart =@Value
end
Update Stats
set Males =@Malest,Females =@Females
where
Category =@Category and
periodType =@PeriodType AND StartDate =@Startdate and EndDate =@enddate
問題:
結果が不正確です
organisation PeriodType StartDate EndDate Deaths Patients Males Females
------------ ---------- ---------- ---------- ------ -------- ----- -------
34 Monthly 2010-04-01 2010-04-30 NULL 6843 896 463
34 Monthly 2010-04-01 2010-04-30 NULL 10041 896 463
34 Monthly 2010-05-01 2010-05-31 NULL 10255 898 463
34 Monthly 2010-05-01 2010-05-31 NULL 7086 898 461
34 Monthly 2010-06-01 2010-06-30 NULL 10344 922 461
36 Monthly 2010-03-01 2010-03-31 NULL 4317 1054 470
36 Monthly 2010-03-01 2010-03-31 NULL 5756 896 470
36 Monthly 2010-04-01 2010-04-30 NULL 4308 896 463
36 Monthly 2010-04-01 2010-04-30 NULL 5783 896 463
男性と女性は、患者の合計数になる単一の行のみを更新する必要があります。
Patients Males Females
-------- ----- -------
41 21 20
何か案は?
もう少し明確にするために
/クエリ テーブル/
organisation PeriodType StartDate EndDate Males Females
------------ ---------- ---------- ---------- ----- -------
34 Monthly 01-02-2012 01-02-2012 220 205
34 Monthly 01-02-2012 01-02-2012 30 105
/*ステートメントを更新します*/
Update Stats
set Males =@Malest,Females =@Females
where
--Category =@Category and
periodType =@PeriodType AND StartDate =@Startdate and EndDate =@enddate
統計表 /入力前/
organisation PeriodType StartDate EndDate Deaths Patients Males Females
------------ ---------- ---------- ---------- ------ -------- ----- -------
34 Monthly 01-02-2012 01-02-2012 0 425 null null
34 Monthly 01-02-2012 01-02-2012 25 null null null
34 Monthly 01-02-2012 01-02-2012 5 null null null
34 Monthly 01-02-2012 01-02-2012 5 135 null null
/行をよく見ると、期間の種類、開始日、終了日が同じなので、更新値が患者の合計を含む行以外の行に影響を与えないようにします/
統計テーブル /* 出力 */
organisation PeriodType StartDate EndDate Deaths Patients Males Females
------------ ---------- ---------- ---------- ------ -------- ----- -------
34 Monthly 01-02-2012 01-02-2012 0 425 220 205
34 Monthly 01-02-2012 01-02-2012 25 null null null
34 Monthly 01-02-2012 01-02-2012 5 null null null
34 Monthly 01-02-2012 01-02-2012 5 135 30 105
これがより多くの情報を提供することを願っています