Untitled
unknown
mysql
3 years ago
2.3 kB
2
Indexable
Never
/* Z3, Filip, Budzyński, 3 , 319021 Z3.1 - policzyć liczbę osób w każdym miecie (zapytanie z grupowaniem) Najlepiej wynik zapamiętać w tabeli tymczasowej Z3.2 - korzystajšc z wyniku Z3,1 - pokazać, które miasto ma największš liczbę osób (zapytanie z fa - analogiczne do zadań z Z2) Z3.3 Pokazać liczbę firm w każdym z województw (czyli grupowanie po kod_woj) Z3.4 Poazać województwa w których nie ma żadnej firmy (SELECT * FROM WOJ w WHERE NOT EXISTS (SELECT 1 ...... ) (Ja nie ma takowych to prosze dodać ze 2 takie WOJ ) (suma z3.3 i z3.4 powinna dać nam pełnš listę województw - woj gdzie sa firmy i gdzie ich nie ma to razem powinny byc wszystkie */ USE b_319021 GO --Z3.1 CREATE TABLE #TMP ( [ile osób] int NOT NULL, nazwa nvarchar(20) NOT NULL); select COUNT(*) as [ile osób] , m.nazwa INTO #TMP from OSOBY o join MIASTA m ON (o.id_miasta = m.id_miasta) GROUP BY m.nazwa select * from #TMP /* ile osób nazwa ----------- ----------- 5 Lubartów 3 Lublin 4 Płock 6 Warszawa */ --Z3.2 declare @max int select @max = max(t.[ile osób]) from #tmp t select * from #TMP t where @max =(t.[ile osób]) /* ile osób nazwa ----------- --------- 6 Warszawa */ --Z3.3 select count(*) as [ile firm] , w.kod_woj as [kod woj] from MIASTA m join WOJ w ON (w.kod_woj = m.kod_woj) join FIRMY f ON (m.id_miasta = f.id_miasta) group by w.kod_woj /* ile firm kod woj ----------- ------- 2 LUB 4 MAZ */ --Z3.4 SELECT w.nazwa , w.kod_woj FROM WOJ w WHERE NOT EXISTS (SELECT 1 FROM FIRMY f join MIASTA m ON (f.id_miasta = m.id_miasta) where (w.kod_woj = m.kod_woj)) /* nazwa kod_woj -------------------------------------------------- ------- Małopolskie MPL */ /*Sprawdzamy sumą dwóch zapytań, Z3.3 i Z3.4*/ select w.kod_woj as [kod woj] from MIASTA m join WOJ w ON (w.kod_woj = m.kod_woj) join FIRMY f ON (m.id_miasta = f.id_miasta) group by w.kod_woj UNION SELECT w.kod_woj FROM WOJ w WHERE NOT EXISTS (SELECT 1 FROM FIRMY f join MIASTA m ON (f.id_miasta = m.id_miasta) where (w.kod_woj = m.kod_woj)) /* kod woj ------- LUB MAZ MPL */