Проверь это.
С разбивкой по всем видам оплаты и налогам.
Можно и по типу чека (продажа/возврат) группировку сделать, будет 1 запрос вместо 4-х.
Код:
select p.payment_name, t.percent,
ifnull(sum(t.amount*(p.amount/s.amount)), 0) 'tax_sum',
ifnull(sum((i.total+i.discount)*(p.amount/s.amount)), 0) 'item_sum',
count(*) 'items'
from trm_out_shift_open so
inner join trm_out_receipt_header h on so.id = h.shift_open and so.cash_id = h.cash_id
inner join trm_out_receipt_footer f on h.id = f.id and h.cash_id = f.cash_id
inner join trm_out_receipt_subtotal s on h.id = s.id and h.cash_id = s.cash_id
inner join trm_out_login l on h.login = l.id and h.cash_id = l.cash_id
inner join trm_out_receipt_item i on h.id = i.receipt_header and h.cash_id = i.cash_id
left join trm_out_receipt_item i2 on i.receipt_header = i2.receipt_header and i.id = i2.link_item and i.cash_id = i2.cash_id
inner join trm_out_receipt_item_tax it on i.id = it.receipt_item and i.cash_id = it.cash_id
inner join trm_out_receipt_tax t on it.receipt_tax = t.id and it.cash_id = t.cash_id
inner join trm_out_receipt_payment p on h.id = p.receipt_header and p.cash_id = h.cash_id
where so.number = 1
and h.type in (0,5)
and f.result = 0
and l.user_id in (20)
and i.type = 0
and i2.link_item is null
and so.cash_id = 1007006
and t.tax_id = 1
and p.type = 0
group by p.payment_id, t.percent
;
Если сумму НДС не брать из таблиц, а вычислять по % ставке из конечных 'item_sum', между ними будет разница в копейках.