Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Как получить верный результат используя 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
1-1109924793
Alexandre
2005-03-04 11:26
2005.03.20
Скрытие формы


10-1086770598
ss300
2004-06-09 12:43
2005.03.20
Зависает DCOM объект


3-1108846905
NikNet
2005-02-20 00:01
2005.03.20
Проблема добовление данных в связоную таблицу?


14-1108543241
WondeRu
2005-02-16 11:40
2005.03.20
Все статьи DelphiWorld в 20Мб!!! Качать!!!


1-1110031060
Aleksandr.
2005-03-05 16:57
2005.03.20
Надо ли делать SetLength(Array,0)?