Jak napisac zapytanie
Karol - 30-12-2006 01:03
Jak napisac zapytanie
Mam dwie tabele
Tabela towary: idTowaru|nazwa
Tabela magazyn: IdMagazynu|idTowaru|ilosc(money)
miedy towary.idTowaru jest relacja do magazyn.idTowaru
dla jednego towaru moze być przypisany wiecej niz jeden rekord z tabeli magazyn
Jak napisc zapytanie w ktorym w rezultacie otrzymam : towary.nazwa i suma z kolumn magazyn.ilosc w ktorych towary.idTowaru = magazyn.idTowaru. Innymi słowy suma stanu ze wszystkich magazynów.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
jacek - 30-12-2006 01:03
SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru GROUP BY Magazyn.idTowaru
- 30-12-2006 01:03
Karol napisał(a): > Mam dwie tabele > > Tabela towary: > idTowaru|nazwa > > Tabela magazyn: > IdMagazynu|idTowaru|ilosc(money) > > miedy towary.idTowaru jest relacja do magazyn.idTowaru > > dla jednego towaru moze być przypisany wiecej niz jeden rekord z tabeli > magazyn > > Jak napisc zapytanie w ktorym w rezultacie otrzymam : > towary.nazwa i suma z kolumn magazyn.ilosc w ktorych > towary.idTowaru = magazyn.idTowaru. Innymi słowy suma > stanu ze wszystkich magazynów. >
select t.nazwa, sum(m.ilosc) from towary t join magazyn m on m.idtowaru = t.idtowaru group by m.idmagazynu
Pozdrawiam.
Karol - 30-12-2006 01:03
jacek <adres@moj.pl> napisał(a):
> SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma > FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru > GROUP BY Magazyn.idTowaru THX. Działa ale chciałbym także mieć w wyniku Towary.Nazwa.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
jacek - 31-12-2006 00:04
Dnia Fri, 29 Dec 2006 21:29:37 +0000 (UTC), Karol napisał(a):
> jacek <adres@moj.pl> napisał(a): > >> SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma >> FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru >> GROUP BY Magazyn.idTowaru > THX. Działa ale chciałbym także mieć w wyniku Towary.Nazwa.
no to dodaj towary.nazwa za select
Karol - 31-12-2006 00:04
jacek <adres@moj.pl> napisał(a):
> Dnia Fri, 29 Dec 2006 21:29:37 +0000 (UTC), Karol napisał(a): > > > jacek <adres@moj.pl> napisał(a): > > > >> SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma > >> FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru > >> GROUP BY Magazyn.idTowaru > > THX. Działa ale chciałbym także mieć w wyniku Towary.Nazwa. > > no to dodaj towary.nazwa za select Próbowałem ale wyskakuje mi monit o błędzie: "Column 'towary.nazwa' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause"
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Borafu - 31-12-2006 00:04
jacek napisał(a): > Dnia Fri, 29 Dec 2006 21:29:37 +0000 (UTC), Karol napisał(a): > >> jacek <adres@moj.pl> napisał(a): >> >>> SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma >>> FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru >>> GROUP BY Magazyn.idTowaru >> THX. Działa ale chciałbym także mieć w wyniku Towary.Nazwa. > > no to dodaj towary.nazwa za select i chyba jeszcze trzeba będzie to samo za GROUP BY
Pozdro -- Borafu
Rafal sxat - 31-12-2006 00:04
> > > > > >> SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma > > >> FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru > > >> GROUP BY Magazyn.idTowaru > > > THX. Działa ale chciałbym także mieć w wyniku Towary.Nazwa. > > > > no to dodaj towary.nazwa za select > Próbowałem ale wyskakuje mi monit o błędzie: > "Column 'towary.nazwa' is invalid in the select list because it is not > contained in either an aggregate function or the GROUP BY clause"
co to za baza ?
moze trzeba poszukac czegos takiego jak FIRST/MIN(towary.nazwa), LAST/MAX(towary.nazwa) etc....
pozdr rAFAL sxat
-- Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych
Borafu - 31-12-2006 00:04
Karol napisał(a): >>>> SELECT Magazyn.idTowaru, Sum(Magazyn.ilosc) AS Suma >>>> FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru >>>> GROUP BY Magazyn.idTowaru >>> THX. Działa ale chciałbym także mieć w wyniku Towary.Nazwa. >> no to dodaj towary.nazwa za select > Próbowałem ale wyskakuje mi monit o błędzie: > "Column 'towary.nazwa' is invalid in the select list because it is not > contained in either an aggregate function or the GROUP BY clause"
Dlatego właśnie napisałem Ci o dodaniu tego samego po GROUP BY, czyli coś mniej więcej takiego:
SELECT Magazyn.idTowaru, Towary.Nazwa, Sum(Magazyn.ilosc) AS Suma FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru GROUP BY Magazyn.idTowaru, Towary.Nazwa
Pozdro -- Borafu
Karol - 31-12-2006 00:04
Borafu <borafu_NIELUBIESPAMU@gazeta.pl> napisał(a):
> Dlatego właśnie napisałem Ci o dodaniu tego samego po GROUP BY, czyli > coś mniej więcej takiego: > > SELECT Magazyn.idTowaru, Towary.Nazwa, Sum(Magazyn.ilosc) AS Suma > FROM Magazyn INNER JOIN Towary ON Magazyn.idTowaru = Towary.idTowaru > GROUP BY Magazyn.idTowaru, Towary.Nazwa Dziekuję. Działa dokładnie tak jak chciałem.
Pozdrawiam :-)
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
[sql][pgsql] zapytanie sql
zanotowane.pldoc.pisz.plpdf.pisz.plnumervin.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|