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

Откуда:
Сообщений: 2
SELECT Z1.ID, SUM(Z1.Количество) FROM Запросы1 Z1 GROUP BY Z1.ID

SELECT Z2.ID, SUM(Z2.Количество) FROM Запросы2 Z2 GROUP BY Z2.ID

пример Z1
1 - 100
1 - 100
2 - 2
3 - 34
3 - 34
аналогично Z2


Вот задача в том, чтобы посчитать разность между ними ( между 2 запросами ), чтобы получилось что-то такого типа:
1 - 92 (100-8)
2 - 1 (2-1)
3 - 60 (68-8)

Пробовал через соединению таблиц, никак. Скорее всего через UNION как-то нужно, но с этим уже проблемы
6 дек 12, 00:52    [13585072]     Ответить | Цитировать Сообщить модератору
 Re: Разность сумм из двух таблиц  [new]
Добрый Э - Эх
Guest
а какие проблемы с UNION ?
Банально знак значениям из второго запроса меняешь, а далее агрегация по ID и суммирование поля "количество":

select id, sum(x_sum) as y_sum
  from (
          SELECT Z1.ID,  SUM(Z1.Количество) as x_sum FROM Запросы1 Z1 GROUP BY Z1.ID
          UNION ALL
          SELECT Z2.ID, -SUM(Z2.Количество) as x_sum FROM Запросы2 Z2 GROUP BY Z2.ID
        ) as v
 group by id
6 дек 12, 04:48    [13585250]     Ответить | Цитировать Сообщить модератору
 Re: Разность сумм из двух таблиц  [new]
aleks2
Guest
А чо, join тоже могет

select coalesce(Z1.ID, Z2.ID) as ID, isnull(Z1.Количество, 0) - isnull(Z2.Количество,0) as Количество
from
(SELECT Z1.ID, SUM(Z1.Количество) as Количество FROM Запросы1 Z1 GROUP BY Z1.ID) Z1
full outer join
(SELECT Z2.ID, SUM(Z2.Количество) as Количество FROM Запросы2 Z2 GROUP BY Z2.ID) Z2
on Z1.ID=Z2.ID
6 дек 12, 05:56    [13585266]     Ответить | Цитировать Сообщить модератору
 Re: Разность сумм из двух таблиц  [new]
strouder
Member

Откуда:
Сообщений: 2
Добрый Э - Эх, aleks2

Спасибо !
6 дек 12, 22:40    [13590990]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить