Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.03;
Скачать: 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 вся ветка

Текущий архив: 2002.10.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
7-8182
Ученик
2002-07-24 10:42
2002.10.03
Перезапуск сервиса


1-8016
ctapik-net
2002-09-21 21:05
2002.10.03
Declaration of class TForm1 is missing or incorrect!!!


7-8206
Holder 2002
2002-07-18 15:13
2002.10.03
Можно ли заблокировать из Windows кнопку Reset ? (на корпусе)


3-7872
RDA
2002-09-13 15:20
2002.10.03
мастер - деталь


1-7987
vadim2
2002-09-20 13:51
2002.10.03
как сделать, чтобы dbgrid обрабатывал wm_paste?