Чем пользуемся мы:
данные в таблицах:
trm_out_receipt_footer.result
0 нормально завершен
1 аннулирован
2 отложен
3 разрушен
trm_out_receipt_header.TYPE
5 - восстановленный
trm_out_receipt_item.TYPE
0 продажа
1 аннулирование (ошибочная позиция в чеке)
2 сторнированная позиция
3 сторнирующая позиция
-- отбор аннулированных и сторнированных позиций. кассир, касса, дата, номер чека, сумма позиции.
SELECT trm_out_login.user_id,trm_out_login.user_name,trm_out_receipt_header.pos,trm_out_receipt_header.pos_name,trm_out_receipt_header.date,trm_out_receipt_header.local_number,trm_out_receipt_header.global_number,trm_out_receipt_item.total FROM trm_out_receipt_item,trm_out_receipt_header,trm_out_receipt_footer,trm_out_login
WHERE (trm_out_receipt_item.receipt_header=trm_out_receipt_header.id AND trm_out_receipt_item.cash_id=trm_out_receipt_header.cash_id)
AND (trm_out_receipt_item.receipt_header=trm_out_receipt_footer.id AND trm_out_receipt_item.cash_id=trm_out_receipt_footer.cash_id)
AND (trm_out_login.cash_id=trm_out_receipt_item.cash_id AND trm_out_login.id=trm_out_receipt_header.login )
AND trm_out_receipt_footer.result=0 AND trm_out_receipt_header.TYPE<>5 AND trm_out_receipt_item.TYPE IN (1,2)
AND (DATE(trm_out_receipt_header.DATE) BETWEEN '2013-11-01' AND '2013-12-31');