2 tabele w relacji 1 do wielu - tylko jeden wiersz
Michalek - 12-01-2006 09:31
2 tabele w relacji 1 do wielu - tylko jeden wiersz
Firmy ------- IDF Nazwa 1 Firma A 2 Firma B
Pracownicy ----------- IDP IDF Imie Premia 1 1 Piotr 1000 2 1 Anna 2000 3 2 Wojtek 1500 4 2 Michal 1800
Jak widać są 2 firmy i w każdej z nich jest po 2 pracowników. Zadanie : Pokazać nazwę IDF, IDP, Nazwę firmy, imię pracownika,premie
Założenie. Z każdej firmy wyciągamy tylko jednego pracownika - tego który ma mniejszą premię.
Wynik powienien wyglądać tak : 1, 1, Firma A, Piotr, 1000 2, 3, Firma B, Wojtek, 1500
Zapytanie powinno działać na mySql'u i SQL Server 2000.
Z góry dziękuję Michał
Smith - 12-01-2006 09:31
Cześć
> Założenie. > Z każdej firmy wyciągamy tylko jednego pracownika - tego który ma mniejszą > premię.
A co w sytuacji jeżeli będzie dwóch lub więcej pracowników o takiej samej, najniższej premii ?
> Zapytanie powinno działać na mySql'u i SQL Server 2000.
powinno działać :)
SELECT * FROM firmy f, pracownicy p WHERE p.idf=f.idf and premia<=(SELECT min(premia) FROM pracownicy WHERE idf=p.idf);
Pozdrawiam Paweł
Slawomir Cichy - 16-01-2006 23:25
Michalek wrote: > Firmy > ------- > IDF Nazwa > 1 Firma A > 2 Firma B > > > Pracownicy > ----------- > IDP IDF Imie Premia > 1 1 Piotr 1000 > 2 1 Anna 2000 > 3 2 Wojtek 1500 > 4 2 Michal 1800 > > Jak widać są 2 firmy i w każdej z nich jest po 2 pracowników. > Zadanie : > Pokazać nazwę IDF, IDP, Nazwę firmy, imię pracownika,premie > > Założenie. > Z każdej firmy wyciągamy tylko jednego pracownika - tego który ma mniejszą > premię. > > Wynik powienien wyglądać tak : > 1, 1, Firma A, Piotr, 1000 > 2, 3, Firma B, Wojtek, 1500 > > Zapytanie powinno działać na mySql'u i SQL Server 2000. >
Szkoda, ze nie napisales, dla ktorej wersji mysql'a ma to dzialac. Do wersji 4.0 wlacznie nie sa obslugiwane subselecty i masz problem.
Zapytanie moglo by wygladac tak:
select f.IDF, p.IDP, f.Nazwa, p.Imie, p.Premia from Firmy f, (select IDF, IDP, IMIE, min(Premia) as Premia from Pracownicy group by IDF, IDP, IMIE ) p where f.IDF = p.IDF
ps. tabele nie sa w relacjach, bo same sa relacjami, a lacza je zwiazki, w tym przypadku zwiazek 1 do wielu
pozdrawiam Slawas
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] Skopiowanie =?ISO-8859-2?Q?warto=B6ci_z_jednego_po?==?ISO-8859-2?Q?la_do_drugiego_w_jednej_tabeli=2C_r=F3=BFne_?= =?ISO-8859-2?Q?wiersze=2E?=
[mysql] =?ISO-8859-2?Q?po=B3=B1czenie_tabel_wg_kolumn=2C_?==?ISO-8859-2?Q?nie_wierszy?=
=?ISO-8859-2?Q?=5BOracle=5D_Porownanie_wierszy_z_tych_?==?ISO-8859-2?Q?samych_tablic_na_2_r=F3=BFnych_schematach?=
=?ISO-8859-2?Q?eksportuje_z_corela_do_bmp_albo_psd_?==?ISO-8859-2?Q?i_tylko_mi_sie_t=B3o_eksportuje?=
Dwie bazy czy dwie tabele?
[MySQL] Mysqldump i tabele o =?ISO-8859-2?Q?okre=B6lonych_prze?==?ISO-8859-2?Q?drostkach?=
[PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?=
[MySQL] Jak =?ISO-8859-2?Q?zaprojektowa=E6_tabele=3F_Wyniki_?==?ISO-8859-2?Q?pojedynk=F3w=2C_meczy_-_tenis?=
Jednoczesne sumowanie kolumn i wierszy oraz multiplikacja kolumn
[MySQL] Wybierz tylko te rekordy z t1 =?ISO-8859-2?Q?kt=F3rych_?==?ISO-8859-2?Q?nie_ma_w_t2=2E_JOIN_=3F?=
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 |
|