Форум: "Базы";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКак получить верный результат используя SUM() Найти похожие ветки
← →
Leonardo (2005-02-19 20:19) [0]Буду очень признателен Вам за дельній совет.
Таких примеров в инете не находил еще!
каким образом можно получить верный результат, когда используешь
две фу-ции Sum например
Select table.id,sum(table1.kolvo) as sum1,sum(table2.kolvo) as sum2 from
table,table1,table2 where
table1.tID=table.id and table2.tID=t.id
получаю результат (Например)
ID sum1 sum2
---------------
25 150 300
Считает, но не правильно!!!!
Должно быть так
ID sum1 sum2
----------------
25 75 100
← →
Desdechado © (2005-02-19 20:24) [1]попробуй с подзапросом
select table.id, (select sum(table1.kolvo) from table1 where table1.tid=table.id) as sum1, (select sum(table2.kolvo) from table2 where table2.tid=table.id) as sum2
from table
order by table.id
← →
Fin © (2005-02-19 20:25) [2]
> Leonardo (19.02.05 20:19)
>where table1.tID=table.id and table2.tID=t.id
а как table2 связан с другими table?
← →
Leonardo (2005-02-19 20:29) [3]Desdechado, пробовал так
почему не выходит?
table1.tid=table.id
в подзапрос t.id не передает значение, я уже пробовал
← →
Desdechado © (2005-02-19 20:33) [4]t.id у тебя в запросе ниоткуда - алиаса для таблицы такого нет
← →
Leonardo (2005-02-19 20:35) [5]Ошибся, не t.id, a Table.id
← →
Johnmen © (2005-02-19 22:14) [6]>Leonardo
Всё очень просто объясняется.
Представь себе декартово произведение 3-ёх таблиц. Из него отбери записи, удовлетворяющие твоему условию (where). Теперь просуммируй указанные в sum поля. Получишь то, что и указал в [0].
← →
sniknik © (2005-02-19 22:22) [7]> Считает, но не правильно!!!!
наверняка правильно, но почемуто ты не ожидаеш подобного результата,
убери из запроса суммы, получи обьеденение в виде полного рекордсета и посчитай сам с помошью калькулятора... увидиш получится тоже самое.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c