Приветствую!
Возник такой вопрос, есть сеть магазинов с бонусными картами, при просмотре выписки счетов одного из клиентов, видно (см. вложение) что бонусы списались за оплату покупки, но в верхней сроке указан привязанный чек, а в нижней нет.
Есть вопросы:
1. Из какой таблицы формируется выписка?
2. Можно ли каким либо запросом установить в каком таки чеке было списание этих бонусов?
сам для проверки осилил вот такой вот запрос
Код:
SELECT crd.start_card_code
-- , rh.`date`
, sum(
CASE
WHEN rh.type = 0 AND rd.discount_type = 9 THEN
rp.amount
WHEN rh.type = 4 AND rd.discount_type = 9 THEN
-rp.amount
ELSE
0
END) AS amount
, sum(
CASE
WHEN rd.discount_type = 9 AND rh.type = 0 THEN
rd.account_amount
WHEN rd.discount_type = 11 AND rh.type = 4 THEN
-rd.amount
ELSE
0
END) AS prihod
, sum(
CASE
WHEN rd.discount_type = 11 AND rh.type = 0 THEN
rd.amount
WHEN rd.discount_type = 9 AND rh.type = 4 THEN
-rd.account_amount
ELSE
0
END) AS rashod
-- , sum(rd.account_amount)
FROM
trm_out_receipt_header rh
LEFT OUTER JOIN trm_out_receipt_payment rp
ON rh.cash_id = rp.cash_id AND rh.id = rp.receipt_header
INNER JOIN trm_in_pos pos
ON rh.cash_id = pos.cash_id
INNER JOIN trm_in_store store
ON pos.store_id = store.store_id
LEFT OUTER JOIN trm_out_receipt_discounts rd
ON rh.cash_id = rd.cash_id AND rh.id = rd.receipt_header
LEFT OUTER JOIN trm_in_clients clt
ON rh.client = clt.id AND clt.global_id = 0
LEFT OUTER JOIN trm_in_cards crd
ON crd.id = rh.card AND crd.global_id = 0
WHERE
rh.`date` < '2012-12-12'
AND (rp.type = 0
OR rp.type IS NULL)
AND crd.start_card_code = '0000001653489'
GROUP BY
crd.start_card_code
-- , rh.`date`
ORDER BY
rh.date
он в общем считает верно, но вот такие суммы без привязанных чеков из него выпадают.