![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уважаемые Мастера, вопрос по SQL... [D5, Access]
KMM © (2002-02-06 12:22:00)Есть три таблицы:
Firm:(фирмы)
id_firm //шифр фирмы
name_firm //название
Prih:(приходные накладные)
id_prih //шифр приходной накладной
id_firm //шифр фирмы
summ_prih //сумма приходной накладной
RAsh: (расходные накладные)
id_rash //шифр расходной накладной
id_firm //шифр фирмы
summ_rash //сумма расходной накладной
Мне необходимо в результате запроса получить список фирм и для каждой из них суммарный приход и суммарный расход
Пишу что-то вроде:
SELECT
firm.id_firm, firm.name_firm,
Sum(prih.summ_prih) AS PRIHOD,
Sum(rash.summ_rash) AS RASHOD
FROM (firm LEFT JOIN prih ON firm.id_firm = prih.id_firm)
LEFT JOIN rash ON firm.id_firm = rash.id_firm
GROUP BY firm.id_firm, firm.name_firm
Однако это неправильно, судя по результатам (суммирование происходит многократное).
Подскажите, пожалуйста как решить эту проблему.
KMM (2002-02-13 11:45:00) [1]>Леше. Дико извиняюсь, РАБОТАЕТ!!! (я сначала ошибся при проверке). Премного благодарен!
>skiph. Я тоже делал это через вспомогательную таблицу, а оказывается это можно решить проще. Ура!
KMM (2002-02-13 11:03:00) [2]>Леше : Не работает.
Интересно, эта задача вообще решается (в смысле - одним запросом)?
Леша (2002-02-12 09:18:00) [3]select id_firm, nm_firm,
(select sum(summ_prih) from Prich where Prich.id_firm=Firm.id_firm) as prihod,
(select sum(summ_rach) from Rach where Rach.id_firm=Firm.id_firm) as rashod from firm
skiph (2002-02-12 07:47:00) [4]У меня было нечто подобное, но я так и не сумел рабочий запрос состряпать. Пришлось выполнять по отдельности 3 запроса, а затем переносить данные из них во вспомогательную табличку так, как надо.