Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: суммирование при неуникальных значениях
 
 автор: larush   (30.10.2007 в 11:40)   письмо автору
 
 

имею 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 не хватает :-(

   
 
 автор: oradev   (30.10.2007 в 12:00)   письмо автору
 
   для: 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;

   
 
 автор: larush   (30.10.2007 в 14:18)   письмо автору
 
   для: oradev   (30.10.2007 в 12:00)
 

ну, если делать как сказали Вы, то они точно останутся поверхностными как и были... Хотя бы в виду того, что указанный Вами скрипт вывел ОДНУ запись. Если указать max(b.dog), то выводит как и раньше- удвоенное значение
Должно быть так
05 10
06 50

   
 
 автор: oradev   (30.10.2007 в 14:40)   письмо автору
 
   для: larush   (30.10.2007 в 14:18)
 

Давайте не будем спорить с человеком, который тратит свое время на вас. От себя хочу заметить, что вы не запускали скрипт мой ВООБЩЕ а уже кричите.
Вот почему у меня выводит по моему запросу

5 10 Рога и Копыта
6  50 Рога и Копыта


Т.е. то как вы и хотите а у вас нет ? Видимо потому что вы запрос не запускали, а может руки не из того места повылезали.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования