Извлечение данных из двух таблиц в SQL - PullRequest
0 голосов
/ 09 марта 2020

У меня есть две таблицы, таблица A с идентификаторами клиентов, а также продажи из онлайн-покупки и таблица B с идентификаторами клиентов, а также продажи из покупки в магазине. Мой вывод должен состоять из идентификатора клиента из обеих таблиц и столбца с надписью «Магазин», «Онлайн», «Оба» в зависимости от вида покупки, совершенной клиентом.

Ответы [ 2 ]

0 голосов
/ 10 марта 2020
select 
 c.customer_id, 
 case when count(*) = 2 then 'both' else c.location end as location
from (
       select a.customer_id, 'store' as location from ta a 
       union 
       select b.customer_id, 'online' as location from tb b
     ) c 
group by c.customer_id
0 голосов
/ 09 марта 2020

Вы можете использовать union all и некоторые case logi c:

select customerid,
       (case when max(is_online) = 1 and max(is_instore) = 1 then 'both'
             when max(is_online) = 1 then 'online'
             else 'instore'
        end) as grouping
from ((select customerid, 1 as is_online, 0 as is_instore
       from a
      ) union all
      (select customerid, 0 as is_online, 1 as is_instore
       from b
      ) 
     ) ab
group by customerid;
...