Как сгруппировать результаты расчета - PullRequest
0 голосов
/ 09 июля 2020

У меня есть две таблицы: dbo.company_data , в которой указаны разные компании и их страна происхождения, и вторая таблица dbo.sellers_data , в которой указаны единицы, проданные друг другу этими компании.

first table:

вторая таблица:

Мне нужно получить: таблицу, состоящую из трех столбцов - country, export, import, которые содержат суммы значений экспортированных (проданных в другие страны) и импортированных (приобретенных в других странах) ) товаров для каждой страны. Каждая страна должна появиться в этой таблице.

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Попробуйте что-нибудь вроде этого

  
  SELECT cd.Country, SUM(exports.units) AS export, SUM(imports.units) AS import
  FROM dbo.company_data cd
  LEFT JOIN dbo.sellers_data exports
    ON cd.Country = exports.Seller
  LEFT JOIN dbo.sellers_data imports
    ON cd.Country = imports.buyer
  GROUP BY cd.Country
  ORDER BY cd.Country

0 голосов
/ 09 июля 2020

Вам необходимо агрегировать единицы импорта и экспорта, используя два joins и агрегированную функцию sum.

select
  country,
  coalesce(sum(se.units), 0) as export_qty,
  coalesce(sum(si.units), 0) as import_qty
from company_data c

left join seller_data se
on c.company_name = se.seller

left join seller_data si
on c.company_name = si.buyer

group by
  country
...