Witam, na wstępie chciałbym powiedzieć że nie jestem zaawansowanym użytkownikiem SQL'a więc wybaczcie jeżeli będe pisał nie profesjonalnie.
Nie jestem do końca przekonany czy moje pytanie dotyczy MySQL'a :)
używam SQL'a do tworzenia query działających w Excellu, jestetm jedynie użytkownikiem baz co oznacza że mogę je jedynie odczytywać nie ingerując w ich strukturę.
Mój problem jest następujący.
Mam 3 bazy.
Pierwsza ma taką strukturę: Item | Kraj | Dostepność
Druga: Item | Kraj | Ilość zamówiona
Trzecia: Item | Opis itemu
Pierwsza pokazuję jaką mamy dostępność poszczególnych itemów w konkretnym kraju.
Druga pokazuje jaka ilość danego itemu została zamówiona w danym kraju.
Trzecia pokazuje wszystkie dostępne itemy wraz z ich słowmym opisem
Pierwsza i druga baza mają części wspólne ale również są w nich takie linie które są unikalne tylko dla jedenj bazy.
Potrzebuję złączyć jes w jakiś magiczny sposób aby finalnie wyglądało to tak:
Item | Opis | Kraj | Ilość dostępna | ilość zamówiona
Kombinowałem z joinami i union ale zawsze dochodze do takiego momentu że mam tylko itemy które są wspólne dla wszystkich trzech.
I pytanie poboczne - dlaczego to nie działa?
select
d.year
from
(select
a.yearpr as year, a.compmk as company, left(a.ITMNBR,5) as item
from CFCQXP a
where a.compmk in ('0100','UK','NODS') and a.yearpr =?
group by a.yearpr, a.compmk, a.ITMNBR
union
select b.yearpr, b.compin, b.toynbr
from ISISDTA.PMADMP b
where b.yearpr=? and b.compin in ('0100','UK','NODS')
group by b.yearpr, b.compin, b.toynbr
) d
a taki zapis już tak
select
d.year
from
(select
a.yearpr as year, a.compmk as company, left(a.ITMNBR,5) as item
from CFCQXP a
where a.compmk in ('0100','UK','NODS') and a.yearpr =?
group by a.yearpr, a.compmk, a.ITMNBR
union
select b.yearpr, b.compin, b.toynbr
from ISISDTA.PMADMP b
where b.yearpr=? and b.compin in ('0100','UK','NODS')
group by b.yearpr, b.compin, b.toynbr
) d
komunikat jaki dostaję to:
Column year not in table D in*N
Będe wdzięczny za podpowiedzi