you should use a pivot query, i will demonstrate it:
SELECT pcamhd_projectid,
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-1)))) as '1',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-2)))) as '2',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-3)))) as '3',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-4)))) as '4',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-5)))) as '5',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-6)))) as '6',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-7)))) as '7',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-8)))) as '8',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-9)))) as '9',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-10)))) as '10',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-11)))) as '11',
sum(pcamhd_debtrepayment*(1-abs(sign(pcamhd_period-12)))) as '12'
FROM test.pc_amortizeheader
group by pcamhd_projectid;
- sing (x) returns -1,0,+1 for values x < 0, x = 0, x >0 respectively
- abs( sign(x) ) returns 0 if x = 0 else, 1 if x > 0 or x < 0
- 1 - abs( sign(x) ) complement of the above, since this returns 1 only if x = 0