Polecenia domowe z wszystkich ćwiczeń.doc

(80 KB) Pobierz
1

2003.05.09 - polecenia

 

1.      Wyświetl inf. o wizytach które odbyły się po 7 grudnia 2003 roku

SELECT [nr ubezpieczenia], [numer lekarza], [data wizyty]

FROM wizyty

WHERE [data wizyty]>#2003-12-03#;

 

2.      Wyświetl inf. o pacjentach których nazwisko zaczyna się od litery podanej jako parametr

SELECT nazwisko, imię, [nr ubezpieczenia], [data urodzenia]

from pacjenci

where nazwisko like [Podaj pierwsze (pierwszą) literę nazwiska] & "*";

 

3.      Oblicz ile lat maja pacjenci

SELECT nazwisko, imię, [nr ubezpieczenia], year(date())-year([data urodzenia]) as [wiek pacjenta]

from pacjenci

 

4.      Wyświetl tylko dane kobiet, nie dopisując do tabeli kolumny „Płeć”. Przyjmij że imiona wszystkich kobiet kończą się na literę „A”. (prawa strona).

SELECT *

from pacjenci

where right(imię,1)="a"

 

5.      Dane 5 najstarszych pacjentów

SELECT top 5 *

from pacjenci

order by [data urodzenia]

 

6.      Dane 5 najmłodszych pacjentów

SELECT TOP 5 *

FROM pacjenci

ORDER BY [data urodzenia] DESC;

 

7.      Pokaż ilu właścicieli mieszka w każdym z miast

SELECT count(*) AS [liczba właścicieli], miasto

FROM właściciel

GROUP BY miasto;

 

8.      Oblicz ilu pacjentów jest zarejestrowanych w przychodni, jaka jest średnia wieku.

SELECT count(*) AS [liczba pacjentów], avg(year(date())-year([data urodzenia])) AS [średnia wieku]

FROM pacjenci;

 

9.      Oblicz ilu pacjentów jest zarejestrowanych w przychodni, który jest najstarszy, jaka jest średnia wieku.

SELECT count(*) AS [liczba pacjentów], (select top 1 nazwisko+" "+imię from pacjenci) as [najstarszy pacjent], avg(year(date())-year([data urodzenia])) AS [średnia wieku]

FROM pacjenci;

 

10.  Dla wszystkich pacjentów urodzonych przed określonym jako parametr terminem wyświetl imię, nazwisko, adres.

SELECT imię, nazwisko, adres

from pacjenci

where [data urodzenia]<[Podaj datę: np 2004-01-05]

 

11.  Wyświetl dane pacjentów obchodzących dziś urodziny.

SELECT imię, nazwisko

from pacjenci

where (day(date())=day([data urodzenia]))and(month(date())=month([data urodzenia]))

 

 

2004.05.23 – polecenia 3

 

1.      Pokaż nazwisko, imię, nr. karty pacjentów którzy odbyli wizyty.

SELECT nazwisko, imię,  [nr karty]

from pacjenci inner join wizyty on wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

group by nazwisko, imię, [nr karty]

 

2.      Pokaż nazwiska pacjentów z informacja ile wizyt odbyli.

SELECT nazwisko,count(wizyty.[nr ubezpieczenia]) as [liczba wizyt]

from pacjenci inner join wizyty on wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

group by nazwisko

 

3.      Wyświetl dane WSZYSTKICH pacjentów i daty wizyt, jeżeli jakieś odbyli.

SELECT nazwisko, imię, adres, wizyty.[data wizyty]

from pacjenci left  join wizyty on wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

 

4.      Wyświetl daty wizyt i nazwiska pacjentów którzy je odbyli.

SELECT wizyty.[data wizyty], nazwisko

from pacjenci inner join wizyty on wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

 

5.      Skonstruuj kwerendę która dla wybranego (jako parametr nazwiska) pokaże datę wizyty, dni zwolnienia, numer choroby.

SELECT pacjenci.nazwisko, [Data wizyty], [Dni zwolnienia], [numer choroby]

FROM wizyty inner join pacjenci  on pacjenci.[nr ubezpieczenia]=wizyty.[nr ubezpieczenia]

WHERE nazwisko=[podaj nazwisko];

 

6.      Skonstruuj kwerendę która dla wybranego (jako parametr nazwiska) pokaże datę wizyty, nazwisko lekarza, dni zwolnienia, numer choroby, nazwę choroby.

 

 

7.      Skonstruuj kwerendę która dla wybranego (jako parametr nazwiska) pokaże datę wizyty, nazwisko lekarza, dni zwolnienia, nazwę choroby, nazwisko lekarza specjalisty (jeżeli jest).

 

8.      Zbuduj kwerendę pokazującą nazwiska tych pacjentów którym przyznano w czasie wizyt zwolnienia oraz ilość dni zwolnienia jaka została każdemu z nich przyznana.

SELECT nazwisko, count([dni zwolnienia]) as [Łącznie dni zwolnienia]

from pacjenci inner join wizyty on wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

group by nazwisko

 

9.      Zbuduj kwerendę pokazującą nazwiska WSZYSTKICH pacjentów oraz ilość dni zwolnienia jaka została każdemu z nich przyznana.

SELECT nazwisko, count([dni zwolnienia]) as [Łącznie dni zwolnienia]

from pacjenci left join wizyty on wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

group by nazwisko

 

 

2004.06.06 – polecenia zajęcia

 

1.      Pokaż samochody których właściciel nie pochodzi z Łodzi. Dodaj nazwisko i nr telefonu właściciela.

SELECT [nazwa samochodu], model, właściciel.nazwisko, właściciel.imie, właściciel.miasto

from samochody inner join właściciel on właściciel.[id właściciela]=samochody.[id właściciela]

where not miasto="Łódź"

 

2.      Pokaż samochody będące w komisie dłużej niż 3 miesiące

SELECT [numer rejestracyjny], [nazwa samochodu], model

from samochody

where (date()-data)>90

 

3.      Zbuduj kwerendę pokazującą samochody wstawione do komisu w okresie definiowanym w momencie otwierania kwerendy jako parametr.

SELECT [numer rejestracyjny], [nazwa samochodu], model

from samochody

where (data>[Podaj datę poczatkową np: 2000-01-01]) and (data<[Podaj datę końcową np: 2004-01-01])

 

4.      Zbuduj kwerendę pokazującą liczbę właścicieli w każdym mieście. Ilu w każdym mieście ma telefon, ilu go nie ma?

SELECT miasto, count(miasto) as [Liczba właścicieli w miastach], count([nr telefonu]) as [Liczba właścicieli mających telefon], count([nr telefonu] is null) as [Liczba właścicieli nie mających telefonu]

from właściciel

group by miasto

 

5.      Zapisz dane właścicieli w dwóch kolumnach. W pierwszej nazwisko i imię, w drugiej adres, tzn. miasto, kod pocztowy, ulica.

SELECT (imie+" "+nazwisko) as [Imię i nazwisko], (miasto+" "+kod+", "+ulica) as [Adres zamieszkania]

from właściciel

 

6.      Wyświetl informacje o samochodach droższych niż podawana jako parametr kwota.

SELECT *

from samochody

where cena>[Podaj cenę]

 

7.      Wyświetl informacje o samochodach (nazwa, model, rocznik) i właścicielach (imię, nazwisko), dla właścicieli których nazwisko zaczyna się od litery (liter) podanej jako parametr.

SELECT [nazwa samochodu], model, [rok produkcji], właściciel.imie, właściciel.nazwisko

from samochody inner join właściciel on właściciel.[id właściciela]=samochody.[ID właściciela]

where nazwisko like [Podaj pierwszą litere(y) nazwiska] & "*"

 

8.      Oblicz ile lat mają samochody stojące w  komisie. Posortuj dane od najdroższego do najtańszego.

SELECT (year(date())-year(data)) AS [wiek samochodu], cena

FROM samochody

GROUP BY cena, (year(date())-year(data))

order by cena desc

 

9.      Podaj nazwę, model, rocznik dla 5 najdroższych samochodów w komisie.

SELECT top 5 [nazwa samochodu], model, [rok produkcji], cena

from samochody

order by cena desc

 

10.  Podaj nazwę, model, rocznik dla 5 najtańszych samochodów w komisie.

SELECT top 5 [nazwa samochodu], model, [rok produkcji], cena

from samochody

order by cena

 

11.  Pokaż ilu właścicieli określonej płci mieszka w każdym mieście. Dodaj parametr który określi czy chcemy widzieć liczbę kobiet czy mężczyzn.

SELECT miasto, count(płeć) as [liczba właścicieli wybranej płci]

from właściciel

where płeć=[Ile jest (k)obiet, czy (m)ężczyzn]

group by miasto

 

12.  Oblicz ile samochodów jest w komisie, jaka jest średnia cena, ile kosztuje najdroższy, ile najtańszy.

SELECT count(*) as [Liczba samochodów w komisie], avg(cena) as [Średnia cena samochodów], max(cena) as [najdroższy samochód], min(cena) as [najtańszy samochód]

from samochody

 

13.  Pokaż nazwisko, nr. tel właścicieli którzy mają samochody w komisie. Dodaj nazwę i model samochodu.

SELECT nazwisko, [nr telefonu], samochody.[nazwa samochodu], samochody.[model]

from właściciel inner join samochody on samochody.[ID właściciela]=właściciel.[id właściciela]

 

14.  Pokaż nazwiska WSZYSTKICH właścicieli z informacją ile samochodów przetrzymują w komisie.

SELECT nazwisko, count(samochody.[id właściciela]) as [Liczba samochodów]

from właściciel left join samochody on samochody.[id właściciela]=właściciel.[id właściciela]

group by nazwisko

 

15.  Wyświetl daty przyjęcia samochodów do komisu i nazwiska oraz imiona ich właścicieli.

SELECT samochody.data, nazwisko, imie

from właściciel inner join samochody on samochody.[id właściciela]=właściciel.[id właściciela]

 

16.  Pokaż właścicieli którzy MAJĄ numer telefonu.

SELECT *

from właściciel

where [nr telefonu] is not null

 

17.  Pokaż nazwisko imię, nr. telefonu nazwę i model samochodu dla właścicieli którzy mają numer telefonu.

SELECT nazwisko, imie, [nr telefonu], samochody.[nazwa samochodu], samochody.model

from właściciel inner join samochody on samochody.[id właściciela]=właściciel.[id właściciela]

where [nr telefonu] is not null

 

18.  Jaki procent właścicieli mieszka w każdym z miast?

SELECT miasto, format(count(nazwisko)/(select count(nazwisko) from właściciel), "0%") as [Procent właścicieli w miastach]

from właściciel

group by miasto

 

19.  Jaki procent kobiet mieszka w każdym z miast?

SELECT miasto, format(count(nazwisko)/(select count(nazwisko) from właściciel where właściciel_1.miasto=właściciel.miasto), "0%") AS [Procent Kobiet w miastach]

FROM właściciel AS właściciel_1

WHERE płeć="k"

GROUP BY miasto;

 

20.  Pokaż właścicieli którzy są starsi niż obliczona średnia wieku wszystkich właścicieli.

SELECT nazwisko, year(date())-year([data urodzenia]) as wiek

from właściciel

where year(date())-year([data urodzenia])>(select avg(year(date())-year([data urodzenia])) from właściciel)

 

21.  Pokaż dane właścicieli którzy nie mają samochodów w komisie.

SELECT nazwisko, imie

from właściciel

where [id właściciela] not in (select [id właściciela] from samochody)

 

 

 

 

2004.06.06 – polecenia 4

 

1.      Pokaż nazwisko, imię, numer karty pacjentów, oraz wartość kolumny „Badania” dla pacjentów którym w bieżącym roku wykonano badania specjalistyczne.

SELECT nazwisko, imię, [nr karty], wizyty.badania

FROM pacjenci INNER JOIN wizyty ON wizyty.[nr ubezpieczenia]=pacjenci.[nr ubezpieczenia]

WHERE year(date())=year(wizyty.[data wizyty])

GROUP BY nazwisko, imię, [nr karty], wizyty.badania;

 

2.      Jaki procent pacjentów mieszka w każdym z miast?

SELECT Miejscowość, format(count(nazwisko)/(select count(nazwisko) from pacjenci), "0%") as [Procent pacjentów w miastach]

from pacjenci

group by miejscowość

 

3.      Jaki procent kobiet mieszka w każdym z miast? Spróbuj rozwiązać to zadanie nie dodając kolumny „Płeć”[1].

SELECT miejscowość, format(count(nazwisko)/(select count(nazwisko) from pacjenci where pacjenci_1.miejscowość=pacjenci.miejscowość), "0%") as [Procent kobiet w miastach]

from pacjenci as pacjenci_1

where right(imię,1)="a"

group by miejscowość

 

4.      Pokaż nazwisko i imię dla pacjentów których wiek jest wyższy niż średnia wieku pacjentów +10 lat.

SELECT nazwisko, imię

from pacjenci

where year(date())-year([data urodzenia])>(select avg(year(date())-year([data urodzenia]))+10 from pacjenci)

 

5.      Pokaż dane pacjentów którzy NIE ODBYLI żadnej wizyty.

SELECT nazwisko, imię

from pacjenci

where [nr ubezpieczenia] not in (select [nr ubezpieczenia] from wizyty)

 

6.      Oblicz jak często wizyty kończyły się skierowaniem do specjalisty, jak często miało to miejsce w wypadku wizyt kobiet, jak często w wypadku wizyt mężczyzn.

 

 

...

Zgłoś jeśli naruszono regulamin