Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
ВнизВопрос по SQL Найти похожие ветки
← →
Max Zyuzin (2002-09-13 11:43) [0]Приветствую всех.
Возникла такая вот загвоздка...
Есть таблица, куда постоянно добавляются записи пусть будет Tab2, у нее 2 нужных поля - UserName (FK), Num.
Есть база в котороую преиодически збрасывается итог (суммируется по num) пусть будет tab1 у нее есть тоже 2 нужных поля UserName(PK), SumNum.
В общем необходимо посмотреть сколько всего num у нас на данный момент.
Строю примерно такой запрос -
select tab1.UserName, tab1.SumNum + sum(tab2.num)
from tab1 left join tab2
od tab1.UserName = tab2.UserName
group by tab1.UserName
На что мне говорят что поле tab1.SumNum нету не в агрегатных столбцах не в group by а мне надо бы сумму его с суммой num из tab2...
То есть
select tab1.UserName, tab1.SumNum, sum(tab2.num)
from tab1 left join tab2
od tab1.UserName = tab2.UserName
group by tab1.UserName, tab1.SumNum
так оно конечно работает... а можно ли сделать что бы они суммировались сразу и выдавались одним столбцрм?
← →
ЮЮ (2002-09-13 11:48) [1]SELECT UserName,SumNum+SumNum2 SumAll from (
select tab1.UserName, tab1.SumNum, sum(tab2.num) SumNum2
from tab1 left join tab2
od tab1.UserName = tab2.UserName
group by tab1.UserName, tab1.SumNum
) SumQuery
← →
ЮЮ (2002-09-13 11:49) [2]или
select tab1.UserName, sum(tab1.SumNum+tab2.num) SumNum
from tab1 left join tab2
od tab1.UserName = tab2.UserName
group by tab1.UserName, tab1.SumNum
← →
ЮЮ (2002-09-13 12:11) [3]Кстати, tab2.num может оказаться NULL, что приведёт к проблемам при сложении, следует заменить на isNull(tab2.num,0) as num
← →
Max Zyuzin (2002-09-13 12:15) [4]>ЮЮ © (13.09.02 12:11)
Совместив твой первый и последний ответ, получил нужный результат. спасибо :) (а то у меня были те самые проблеммы при сложении)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c