私は4つのフィールドを持つテーブルを持っています。ID、ドル、インジケーター、およびタイプ。
ID | Dollar | Indicator | Type
1 | 30 | 1 | A
1 | 20 | 1 | A
1 | 60 | 0 | A
1 | 34 | 1 | B
1 | 23 | 0 | B
1 | 45 | 0 | B
2 | 20 | 1 | A
2 | 20 | 0 | A
ここで、インジケーターが 1 であるすべてのドルを追加し、各 ID のインジケーター 0 を持つドルでそれらを減算します。また、場合によっては、タイプ別にグループ化する必要もあります。
次のコードを使用しましたが、適切な答えが得られないようです。
proc sql;
select ID,Type,
case when Indicator = '1' then sum(Dollar) else 0 end as Credit,
case when Indicator = '0' then sum(Dollar) else 0 end as Debit
from test
group by ID,Type
;
quit;
proc sql;
select ID,Type, (Credit - Debit) as Trans
from test
group by Id, Type
;
quit;