snp*_*.it 0 sql sql-server-2008
我有这个专栏,
ID Year ColumnDesc Amount
1 2000 Taken 100
1 2000 NotTaken 10
1 2001 Taken 200
1 2001 NotTaken 100
Run Code Online (Sandbox Code Playgroud)
所以我需要在具有相同ID和年份的金额之间做差异所以我的表应该是这样的.
ID Year ColumnDesc Amount
1 2000 Taken 90
1 2001 Taken 100
Run Code Online (Sandbox Code Playgroud)
谁能帮我..
我想你想要条件聚合:
select id, year, 'Taken' as ColumnDesc,
sum(case when ColumnDesc = 'Taken' then Amount
when ColumnDesc = 'Not Taken' then - Amount
else 0
end) as Amount
from t
group by id, year;
Run Code Online (Sandbox Code Playgroud)