I assume you meant buy-sale = balance, and you wanted -5000 in the last line
CREATE TABLE bla ( id int AUTO_INCREMENT, AssetId int, FromType varchar(255), ToType varchar(255), Ammount int, PRIMARY KEY(id) ) ENGINE = MyISAM; INSERT INTO bla(AssetId,FromType,ToType,Ammount) VALUES (1,'Bank','Asset',10000), (2,'Bank','Asset',5000), (2,'Asset','Bank',4000), (3,'Asset','Bank',3000), (3,'Asset','Bank',2000); SELECT a.AssetId,a.Purchase as Purchase,a.Sale, a.Purchase-a.Sale as Balance FROM ( SELECT a.AssetId, (SELECT IFNULL(SUM(b.Ammount),0) FROM bla as b WHERE b.AssetId=a.AssetId AND FromType='Bank' AND ToType='Asset') as Purchase, (SELECT IFNULL(SUM(b.Ammount),0) FROM bla as b WHERE b.AssetId=a.AssetId AND FromType='Asset' AND ToType='Bank') as Sale FROM bla as a Group By a.AssetId) as a;
source share