CREATE TABLE #Sample ( Status int, Month varchar(5), Capacity int ); Insert into #Sample (Status,Month,Capacity) values (1,'01/16',5) Insert into #Sample (Status,Month,Capacity) values (3,'01/16',2) Insert into #Sample (Status,Month,Capacity) values (1,'02/16',11) Insert into #Sample (Status,Month,Capacity) values (3,'02/16',20) Insert into #Sample (Status,Month,Capacity) values (1,'03/16',8) Insert into #Sample (Status,Month,Capacity) values (3,'03/16',12) Insert into #Sample (Status,Month,Capacity) values (1,'04/16',4) Insert into #Sample (Status,Month,Capacity) values (2,'04/16',10) Insert into #Sample (Status,Month,Capacity) values (3,'04/16',18) Insert into #Sample (Status,Month,Capacity) values (2,'05/16',14) Insert into #Sample (Status,Month,Capacity) values (3,'05/16',37) Insert into #Sample (Status,Month,Capacity) values (2,'06/16',4) Insert into #Sample (Status,Month,Capacity) values (3,'06/16',8) select * from #Sample SELECT a.status, a.month, a.capacity, b.capacity AS total_capacity, a.capacity - b.capacity AS net_capacity FROM #Sample a JOIN #Sample b ON (a.month = b.month) AND (b.status = 3) WHERE a.status IN (1,2); drop table #Sample
A handy way of calculating based on a transaction file.