Witam,
czy ktoś mógłby pomóc w poniższym problemie?
Potrzebuję zrobić "Union" dwóch zapytań. Union zwraca wyniki z dwóch tabel. Jednak potrzebuję jeszcze zrobić jakiś "distinct", który będzie zwracał "pojedyńczo" towary. W obecnym kształcie poprzez fakt że zapytania zwracają różne ilości, towary są dublowane i występują w dwóch pozycjach. Np.
nazwaTW WartośćŚrednia JedostkaMasy
Szalik 50 szt
Szalik 5 szt
Koszula 10 szt
Potrzebuję wyświetlić:
Szalik 55 szt
Koszula 10 szt
SELECT Towary.nazwaTW,(Select sum(PozycjeZK.ilość )) As WartośćŚrednia,JednostkiMasy.nazwa FROM PozycjeZK INNER JOIN Towary ON PozycjeZK.idTowaru = Towary.idTowaru INNER JOIN JednostkiMasy ON PozycjeZK.jmPozycji = JednostkiMasy.idJM AND Towary.jm = JednostkiMasy.idJM
where PozycjeZK.idDokumentu in (select idDokumentu from DokumentyZakupu where (kontrahent in(18,19,20))
and DokumentyZakupu.dataDokumentu >='2011-01-01' and DokumentyZakupu.dataDokumentu <='2011-12-01')
group by Towary.nazwaTW,JednostkiMasy.nazwa
UNION
SELECT Towary.nazwaTW,(Select sum(PozycjeWNT.ilość)) As WartośćŚrednia ,
JednostkiMasy.nazwa FROM PozycjeWNT INNER JOIN Towary ON PozycjeWNT.idTowaru = Towary.idTowaru INNER JOIN JednostkiMasy ON PozycjeWNT.jmPozycji = JednostkiMasy.idJM AND Towary.jm = JednostkiMasy.idJM
where PozycjeWNT.idDokumentu in (select idDokumentu from DokumentyWNT where (kontrahent in(18,19,20))
and DokumentyWNT.dataDokumentu >='2011-01-01' and DokumentyWNT.dataDokumentu <='2011-12-01')
group by Towary.nazwaTW,JednostkiMasy.nazwa