我认为您正在使此过程变得比需要的复杂。
SELECt ProductID, SUM(IF(PaymentMethod = 'Cash', Amount, 0)) AS 'Cash', -- snip SUM(Amount) AS TotalFROM PaymentsWHERe SaleDate = '2012-02-10'GROUP BY ProductID

我认为您正在使此过程变得比需要的复杂。
SELECt ProductID, SUM(IF(PaymentMethod = 'Cash', Amount, 0)) AS 'Cash', -- snip SUM(Amount) AS TotalFROM PaymentsWHERe SaleDate = '2012-02-10'GROUP BY ProductID