Код:
SELECT contract.title, contract.comment, (summa1 + summa2 - summa3 - summa4) as b FROM contract
LEFT JOIN contract_balance ON contract.id=contract_balance.cid AND yy=2007 AND mm=8
HAVING b<0
также HAVING b IS NULL выведет список договоров, для которых баланс на этот месяц еще не был пересчитан (не было наработки/расходов/платежей). Если такие будут, можно сделать что-то вроде:
Код:
SELECT contract.title, contract.comment, (cb.summa1 + cb.summa2 - cb.summa3 - cb.summa4) as b FROM contract
LEFT JOIN contract_balance as cb1 ON contract.id=cb1.cid AND cb1.yy=2007 AND cb1.mm=8
LEFT JOIN contract_balance as cb ON contract.id=cb.cid AND cb.yy=2007 AND cb.mm=7
WHERE cb1.summa1 IS NULL
HAVING b<0