Вниз
Скачать: CL | DM;

Вопрос по 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
1-8049
Карлсон
2002-09-22 15:05
2002.10.03
преобразование времени.


3-7802
firedemon
2002-09-10 13:35
2002.10.03
Как ускорить запросы SQL проводимые над Paradox базой?


14-8156
Undert
2002-09-09 16:24
2002.10.03
Шоу


1-8035
Korona
2002-09-22 15:35
2002.10.03
Почему не работает енаблед?


7-8200
Metallica
2002-07-28 14:29
2002.10.03
-----> Как спрятать программу.




   Наверх