Я сделал выборку итогов по каждой смене.
- Код: Выделить всё
select *,sum_saldo_DK-sum_saldo_manual as diff
from (select *,sum_in-sum_out+sum_sales-sum_bank-sum_refund as sum_saldo_manual
from (select n_session,sum(case when tr_type=50 then value_1 else 0 end ) as sum_in,
sum(case when tr_type=51 then value_1 else 0 end ) as sum_out,
sum(case when (tr_type=40 OR tr_type=41) AND check_type=0 AND payment_type=1 then value_1-value_2 else 0 end ) as sum_Sales,
sum(case when (tr_type=40 OR tr_type=41) AND check_type=0 AND payment_type=2 then value_1-value_2 else 0 end ) as sum_Bank,
sum(case when tr_type=55 AND check_type = 1 then value_1 else 0 end ) as sum_Refund,
sum(case when tr_type=63 then value_1 else 0 end ) as sum_Saldo_DK
from transaction
GROUP BY n_session
ORDER BY n_session) as a) as b
Ошибки возникают, но редко.
В основном остаток не переносится.