Я не думаю, что СОЮЗ необходим для того, что вы пытаетесь сделать.Это передаст данные один раз и поместит значения в отдельные столбцы.Возможно, вам придется привести или преобразовать 0.5 в определенный тип, у меня не было возможности запустить это.
SELECT
Category,
SUM(CASE WHEN Payer='me' AND NOT IsShare THEN Amount ELSE 0 END) as IPaid,
SUM(CASE WHEN Payer='me' AND IsShare THEN Amount * 0.5 ELSE 0 END) as SharedPay,
SUM(CASE WHEN Payer='bro' AND IsShare THEN Amount * 0.5 ELSE 0 END) as BrotherPay
FROM Eexpenses
WHERE Category = 'Groceries'
GROUP BY Category
Для MS ACCESS:
SELECT
Category,
SUM(IIF(Payer='me' AND NOT IsShare, Amount,0)) as IPaid,
SUM(IIF(Payer='me' AND IsShare, Amount * 0.5, 0)) as SharedPay,
SUM(IIF(Payer='bro' AND IsShare, Amount * 0.5, 0)) as BrotherPay
FROM Eexpenses
WHERE Category = 'Groceries'
GROUP BY Category
Добавить три столбца вместе:
SELECT Category, IPaid, SharedPay, BrotherPay, IPay + SharedPay + BotherPay as Total
FROM (
SELECT
Category,
SUM(IIF(Payer='me' AND NOT IsShare, Amount,0)) as IPaid,
SUM(IIF(Payer='me' AND IsShare, Amount * 0.5, 0)) as SharedPay,
SUM(IIF(Payer='bro' AND IsShare, Amount * 0.5, 0)) as BrotherPay
FROM Eexpenses
WHERE Category = 'Groceries'
GROUP BY Category
) as T1