Структура и запрос для "Account" таблиц

Name

Новичок
Структура и запрос для "Account" таблиц

Есть таблицы

ACCOUNT_CHARGE
id
date
tax
cost

ACCOUNT_CHARGE_DETAIL
id
charge_id
amount

ACCOUNT_PAYMENT
id
charge_detail_id
amount

Тоесть каждый CHARGE может быть разбит на на нексклько CHARGE_DETAIL
Например CHARGE = 100 и тря ряда в CHARGE_DETAIL 20, 20, 60

А в свою очередь каждый CHARGE_DETAIL тоже может быть оплачен по частям
Например CHARGE_DETAIL = 60 и тря ряда в CHARGE_PAYMENT 20, 20, 20

Требуеться сгенерировать html таблицу BALANCE и каждую операцию (charge_detail и payment) выводить в новом ряду
с сортировкой по дате. MySQL 3.23..
date | amount | ...

Как запрос составить? Подзапарился я.
Или может таблицы можно пограмотнее спрoектировать?
 

Falc

Новичок
Name
Структура вроде правильная.
В чем проблема? Соединяешь таблички и выводишь.

Только с датой не совсем понятно, у тебя у платежей нету дат?
 

Name

Новичок
У платежей даты есть.
В чем проблема? Соединяешь таблички и выводишь.
Да не все так просто.
Пока вспомогательну таблицу (_dummy) не прикрутил ниче не выходило. http://jinxidoru.com/tutorials/union.html

Вроде сейчас работает.

PHP:
SELECT 
IFNULL(charge.id, pay.id) AS id,
IFNULL(DATE_FORMAT(pay.date, '%e %M, %Y'), DATE_FORMAT(ACC.date, '%e %M, %Y')) AS date_str,
IFNULL(pay.date, ACC.date) AS date,
IF(charge.amount, -charge.amount, pay.amount) AS amount 
FROM account_dummy AS D, account_charge ACC
LEFT JOIN account_charge_detail charge ON (D.num = 0 AND ACC.id = charge.charge_id)
LEFT JOIN account_payment pay ON (D.num = 1 AND ACC.id = pay.charge_id)
WHERE D.num < 2 AND IFNULL(charge.id,pay.id) IS NOT NULL
ORDER BY date DESC, id
 
Сверху