Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Суммировать два селекта  [new]
eXeLe
Member

Откуда:
Сообщений: 65
Есть два селекта, обращающиеся к разным базам, в базах таблицы имеют разную структуру, сами селекты сложные и нагруженные... вообщем поменять селекты проблематично.
Но на выходе они имеют одинаковую структуру по столбцам, значения первого столбца у них пересекаются (к примеру - имена пользователей), в других столбцах - различные цифры. Как сложить между собой эти два селекта, просуммировав значения из столбцов?
UNION не подходит.

Для примера, первый запрос выдает:
user | nmbr
_________
Петя | 1
Вася | 2
Коля | 3

Второй:
user | nmbr
_________
Петя | 2
Вася | 4
Дима| 10

На выходе надо получить:
user | nmbr
_________
Петя | 3
Вася | 6
Коля | 3
Дима| 10
26 ноя 12, 14:33    [13529685]     Ответить | Цитировать Сообщить модератору
 Re: Суммировать два селекта  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
eXeLe,

SELECT [user], SUM(nmbr) FROM 
(SELECT [user], nmbr FROM Table1
UNION ALL
SELECT [user], nmbr FROM Table2) AS [Total]
GROUP BY [user]
26 ноя 12, 14:37    [13529723]     Ответить | Цитировать Сообщить модератору
 Re: Суммировать два селекта  [new]
eXeLe
Member

Откуда:
Сообщений: 65
Jovanny,

то есть просто юнион алл двух запросов и уже запрос к итогу? пойду попробую =)
26 ноя 12, 14:39    [13529742]     Ответить | Цитировать Сообщить модератору
 Re: Суммировать два селекта  [new]
Dima T
Member

Откуда:
Сообщений: 15682
select isnull(t1.user, t2.user) as user, sum(isnull(t1.nmbr, t2.nmbr))
  from t1 full join t2 on t1.user = t2.user
  group by isnull(t1.user, t2.user)
26 ноя 12, 14:40    [13529754]     Ответить | Цитировать Сообщить модератору
 Re: Суммировать два селекта  [new]
Гость333
Member

Откуда:
Сообщений: 3683
eXeLe
UNION не подходит.

...
eXeLe
то есть просто юнион алл ... ? пойду попробую

Дык оно же не подходит? :)
26 ноя 12, 14:50    [13529889]     Ответить | Цитировать Сообщить модератору
 Re: Суммировать два селекта  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Гость333,

UNION не подходит, UNION ALL подходит :) .
26 ноя 12, 14:55    [13529936]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить