Wpis z mikrobloga

#naukaprogramowania #sql

Cześć, na jednym teście na na codility miałem takie zadanie:

Mam dwie tabele:
firma{
nazwa;
kraj;
}

transakcja {
id;
sprzedawca; - nazwa firmy która sprzedaje
kupujacy; - nazwa firmy która kupuje
wartosc; - wartość transakcji
data;
}

Zakładamy że firmy z jednego państwa nie handlują za sobą, oraz pomijamy wszelakie opłaty.
Należy wypisać kraje oraz wartość importu i eksportu dla każdego z nich.

kraj || import || export
==================


Ja stworzyłem coś takiego
Select f.kraj, SUM(wartosc) as import FROM transakcja as t JOIN firma as f ON f.nazwa = t.kupujacy

Jak do tego dodać kolumnę export? Piszę z pamięci więc mogą być jakieś błędy.
  • 3
  • Odpowiedz
@grzeniuu: Też piszę z pamięci (może spróbować z SubQuery)

SELECT f.kraj
,(SELECT SUM(i.wartosc) FROM transakcje i INNER JOIN firma fi ON i.kupujacy =fi.nazwa WHERE fi.kraj = f.kraj) AS [Import]
,(SELECT SUM(e.wartosc) FROM transakcje e INNER JOIN firma fe ON e.sprzedawca=fe.nazwa WHERE fe.kraj = f.kraj) AS [Export]
FROM firma f
  • Odpowiedz