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

Откуда:
Сообщений: 23
Добрый день.
Прошу подсказать что может быть причиной задваивания сумм при присоединении таблицы в запрос (обычный LEFT JOIN). Полный пример, к сожалению на работе, попробую описать суть:
В запросе мы суммируем некие количественные показатели из одной таблицы, скажем Sum(va.cn_count) в определенном промежутке дат. Когда этот запрос суммирует только из этой таблицы - сумма возвращается верно. Но в этот же запрос нужно добавить подсчет кол-ва другого вида операции из другой таблицы напр Sum(iv.cn_count) в том же интервале дат. Но когда я присоединяю эту таблицу, суммы первого значения начинают задваиваться (затраиваться) причем не все, а радномно, без видимой логики, при этот суммы второго значения возвращаются корректно. Обе таблицы соединены с начальной, из которой берутся показатели по коду этого показателя (одинаковый для обеих таблиц).
Применение Sum(distinct(va.cn_count) нужно результата не дает.
Применять временные таблицы не очень хочется, т.к. все должно быть в одном запросе (он сразу тянется в Excel).
21 май 16, 13:22    [19201873]     Ответить | Цитировать Сообщить модератору
 Re: Задваивание сумм при присоединении таблицы  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
ИгорьST,

Скорее всего, при соединении во 2й таблице для 1 записи в 1й находится 2-3 записи, отсюда и задвоения, и затроения. Попробуйте соединить их без группировке и отфильтровать по условию, при котором наблюдается некорректная сумма.
21 май 16, 14:13    [19201998]     Ответить | Цитировать Сообщить модератору
 Re: Задваивание сумм при присоединении таблицы  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
ИгорьST,

Попробуйте использовать несколько CROSS APPLY с группировкой внутри каждого.
22 май 16, 14:44    [19203993]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить