Дана таблица с контрактами, необходимо для каждого contract.id просуммировать задолженность в таблице invoiceT. (Задолженность - когда invoice.payed = "false")
Записать результат в таблицу resT в виде: contract_id, amount
Вот мой псевдокод:
foreach contract in bill.contract contractT
loop
foreach invoice in (select* from bill.invoice invoiceT
where invoiceT.id_contract = contract.id)
sum = 0;
loop
if inv.payed = 'false' then
sum := sum + inv.amount;
end if;
end loop;
insert into debtorsT (id_contract, amount) values (contr.id, sum);
end loop;
Приму любой вариант реализации. Спасибо.
Возможно я не понял вашу задачу - но для чего вам вовсе циклы? Задача решается элементарным стандартным SQL
select id_contract, sum(amount)
from bill.invoice
where payed = 'false' -- если там text или enum, если bool - то напрямую not payed
group by id_contract
Всё, получили выборку со суммой всех неоплаченных инвойсов. Если надо куда-то записать в другую таблицу - есть замечательный синтаксис insert .. select ..
:
insert into debtorsT (id_contract, amount)
select id_contract, sum(amount)
from bill.invoice
where payed = 'false' -- если там text или enum, если bool - то напрямую not payed
group by id_contract
Если нужны ещё и полностью оплаченные контракты то просто добавляется left join:
select id_contract, coalesce(notpayed, 0)
from bill.contract
left join (
select id_contract, sum(amount) as notpayed
from bill.invoice
where payed = 'false' -- если там text или enum, если bool - то напрямую not payed
group by id_contract
) np on id_contract = contract.id
Это стандартные возможности SQL и потому подойдут и для postgresql и для упомянутых на момент написания ответа в тегах sqlite и mysql.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Работаю с DjangoИмеется главная страница написанная на html, на ней располагается кнопка
Есть файл indexhtml в него регулярно добавляются посты(статьи) подобного вида(через админку), только текст и ничего больше
Вопрос в следующем, как мне при выводе ошибки валидации указать свое название поля