Форум: "Базы";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Внизизвините за попытку 2 - про sql Найти похожие ветки
← →
опять я (2003-10-27 00:38) [0]Клиенты(КодКлиент,название)
Договор(КодДоговора,КодКлиент)
Заказано(кодЗаказано,КодДоговор,Сумма)- что заказано в договоре
Оплата(КодОплата,кодДоговор,Сумма)- оплата по договору
Запрос на определние задолженности
SELECT Клиенты.Название, Договор.КодДоговор, Sum([Заказано]![Сумма])-Sum([Оплата]![Сумма]) AS Долг
FROM Клиенты INNER JOIN (Договор INNER JOIN [Оплата] ON Договор.КодДоговор = Оплата.КодДоговора) ON Клиенты.КодКлиента = Договор.КодКлиента
WHERE Договор.КодДоговора=:КодДоговор
GROUP BY Договор.КодДоговор;
сначала считает нормально, при условии что есть записи в таблице оплата, а потом смотришь - и значение удвоилось, утроилось..что делать, и как обработать исключительную ситуацию отсутствия записей в таблице Оплата.
Мне приходится делать два запроса - один на определение суммы по договору, второй - - по оплате, а потом их уже сравнивать. но это же коряво!!!
ps-шекли читал
← →
ЮЮ (2003-10-27 03:52) [1]>Мне приходится делать два запроса - один на определение суммы по договору, второй - - по оплате, а потом их уже сравнивать. но это же коряво!!!
И чего здесь корявого?
Надо сделать два запроса - один на определение суммы по договору, второй - - по оплате непосредственно в Accesse (это будут по существу VIEW) с группировкой по клиенту (или договору, смотря где задолженности тебя интересуют) и уже их использовать в запросе, а не сами таблицы. Хотя Access, наверняка, и подзапросы поддерживает
>и как обработать исключительную ситуацию отсутствия записей в таблице Оплата
И что же это за ситуация такая? Используй LEFT JOIN и наличие/отсутствие записей в подчиненных таблицах никак не повлияет на количество записей, возвращаемых запросом
← →
Sandman25 (2003-10-27 11:08) [2]У нас в таких случаях добавляют в поле договора еще одно поле - текущая оплаченная сумма. Тогда сразу видно, какие договора еще не полностью оплачены и на сколько именно. Поле можно обновлять по триггеру или в той же хранимой, которая добавляет документы оплаты.
← →
paul_k (2003-10-27 11:12) [3]Удалено модератором
← →
Sandman25 (2003-10-27 11:18) [4]Удалено модератором
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c