У меня есть две таблицы, и я хочу получить результат запроса в другой таблице

У меня есть 2 таблицы Comapnies и Trades: Компании:

Странацентр
АбсолютМатематика
Алиса сп.Волшебная страна
Аркус т.г.Математика
Маленькая русалкаПодводное царство

Торги:

я быпродавецпокупательценность
20120125Алиса сп.Аркус т.г.100
20120216Маленькая русалкаАбсолют30
20120217Маленькая русалкаАбсолют50
20121107Маленькая русалкаАлиса сп.10

Запрос, который я использовал:

select country
      ,(select sum(value) from trades t1 where c.name = t1.buyer) as imports
      ,(select sum(value) from trades t2 where c.name = t2.seller) as exports
from companies c
group by country
order by country;

Я не получаю вывод, как требуется.

требуемый вывод:

странаЭкспортимпорт
Математика30180
Ничто00
Подводное царство900
Волшебная страна10040

Что я получаю:

странаИмпортЭкспорт
Математика80НУЛЕВОЙ
НичтоНУЛЕВОЙНУЛЕВОЙ
Подводное царствоНУЛЕВОЙ90
Волшебная страна10100
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать условную агрегацию

select c.center 
    , sum(case c.Country when t.seller then value end) export
    , sum(case c.Country when t.buyer then value end) import
from Comapnies c
left join Trades t on c.Country in (t.seller, t.buyer)
group by c.center
order by c.center;

Я использую имена столбцов из ваших образцов данных.

дб <> рабочий пример

Это дает мне все как ноль

Shalini Sharma 07.05.2022 15:10

Это заработало после нескольких изменений

Shalini Sharma 07.05.2022 15:18

Другие вопросы по теме