Compare sum of columns between tables
You can use a group by on each table to get the result you're looking for, then wrap the whole thing in a view to filter it. See this fiddle: https://www.db-fiddle.com/f/d313vqnsTkiXDXfiEPTwLt/4

Select shortages.Type, shortages.Shortage from (
    Select a.Type, a.QTY-d.QTY Shortage
    from 
        (Select Type, sum(QTY) QTY from Acceptors group by Type) a
         inner join 
        (Select Type, sum(QTY) QTY from Donors group by Type) d on a.type = d.type

) shortages
where shortages.shortage &gt; 0


If you need to cover the situation where a value doesn't exist in the donors table at all you should replace the inner join with a left join and use a case statement or an ISNULL to replace the null values with zeros.