Es gibt eine andere Methode join
verwenden, die für die jeweiligen Daten arbeiten Sie zur Verfügung gestellt hat (was ein „plus“ hat und ein „Minus "Zeile pro Produkt):
select tplus.product, (tplus.total - tminus.total) as total,
(tplus.amount - tminus.amount) as amount
from t tplus join
t tminus
on tplus.product = tminus.product and
tplus.status = 'plus' and
tplus.status = 'minus';
Sowohl diese als auch die Aggregationsabfrage funktionieren gut für die von Ihnen bereitgestellten Daten. Mit anderen Worten, es gibt mehrere Möglichkeiten, dieses Problem zu lösen (jedes hat seine Stärken).
Was haben Sie versucht? Tipp: 'GROUP BY',' CASE'. –