Создайте запрос для объединения данных из двух таблиц с похожими данными - PullRequest
0 голосов
/ 03 февраля 2019

При необходимости совокупный результат двух одинаковых таблиц без получения дубликатов.

Таблицы имеют похожую структуру.Таблицы (date, billed_number, carrier_id, duration ...) имеют 2019-01-29 и 2019-01-30

Я пробовал UNION того же запроса, но получаю повторяющиеся записи.

 select billed_number, sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed
 from alex4..[2019-01-29]
 where billed_number = '702640'
 and carrier_id = 171
 group by billed_number

 union all

 select billed_number, sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed
 from alex4..[2019-01-30]
 where billed_number = '702640'
 and carrier_id = 171
 group by billed_number

В этом примере я использую только таблицы ([2019-01-29] и [2019-01-30]). Мне также нужно иметь возможность комбинировать более двух таблиц.

Результат: номер счета завершен, 702640 3735 702640 3539

Ожидаемый результат: номер счета завершен, 702640 7274

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

спасибо за ответ.Я действительно попробовал и UNION, и UNION ALL, и получил тот же результат.

Я не спал прошлой ночью, пока не понял это.Подзапрос сделал свое дело ...

 SELECT  distinct  billed_number , sum(completed)as comp , FROM    (
        SELECT  [billed_number], 
        sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed,
        sum(CASE WHEN [account_billed_duration] = 0 THEN 1 END) AS failed
        FROM alex4..[2019-01-29]
 where billed_number = '702640'
 and carrier_id = 171
 group by billed_number --,account_billed_duration
        UNION
        SELECT  [billed_number], 
        sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed,
        sum(CASE WHEN [account_billed_duration] = 0 THEN 1 END) AS failed
        FROM    alex4..[2019-01-30]
 where billed_number = '702640'
 and carrier_id = 171
 group by billed_number --, account_billed_duration
    ) Q
    group by billed_number

Еще раз спасибо за ответ: -)

0 голосов
/ 03 февраля 2019

Использовать объединение, а не объединение, все объединять все результаты с дубликатами

...