|
|
|
| имею 2 таблицы
rashod
dog summa month
100 10 05
100 20 06
100 30 06
sp_dogovor
dog agent
100 ЗАО РОГА И КОПЫТА
так вот, мне надо просуммировать суммы по договорам в разре месяцев
select month, sum(summa)
from rashod
where dog=100
group by month
|
выводит как и надо
05 10
06 50
а теперь хочу видеть и контрагента, меняю скрипт
select a.month, sum(a.summa), b.agent
from rashod a, sp_dogovor b
where a.dog=100 and a.dog=b.dog
group by a.month
|
в результате суммы удвоились ! После разборки установлено, что в справочнике договоров ошибочно забиты 2 записи на один и тот же договор (Было 3- утраивались). Удалить не могу - ID договоров участвуют в других таблицах - разбираться и не напортачить, долгое дело . Что делать ? Поверхностных знаний MySQL не хватает :-( | |
|
|
|
|
|
|
|
для: larush
(30.10.2007 в 11:40)
| | > Что делать ? Поверхностных знаний MySQL не хватает :-(
Сделать так чтобы они не были поверхностными!
select a.month, sum(a.summa), max(b.agent)
from rashod a, sp_dogovor as b
where a.dog = b.dog and b.dog = 100
group by a.month;
|
| |
|
|
|
|
|
|
|
для: oradev
(30.10.2007 в 12:00)
| | ну, если делать как сказали Вы, то они точно останутся поверхностными как и были... Хотя бы в виду того, что указанный Вами скрипт вывел ОДНУ запись. Если указать max(b.dog), то выводит как и раньше- удвоенное значение
Должно быть так
05 10
06 50 | |
|
|
|
|
|
|
|
для: larush
(30.10.2007 в 14:18)
| | Давайте не будем спорить с человеком, который тратит свое время на вас. От себя хочу заметить, что вы не запускали скрипт мой ВООБЩЕ а уже кричите.
Вот почему у меня выводит по моему запросу
5 10 Рога и Копыта
6 50 Рога и Копыта
|
Т.е. то как вы и хотите а у вас нет ? Видимо потому что вы запрос не запускали, а может руки не из того места повылезали. | |
|
|
|