Rozwiązanie
Zadanie 5.5 – matura 2016, maj

Zadanie 5.5 (0-3)

Biblioteka podręczników
Biblioteka podręczników
Z biblioteki podręczników, wypożyczanych na cały rok akademicki, mogą korzystać studenci z miasteczka akademickiego i spoza miasteczka. Każdy student może wypożyczyć wiele różnych książek. W miasteczku studenci mieszkają w pokojach po kilka osób w jednym.
Dane są trzy pliki: studenci.txt, meldunek.txt oraz wypozyczenia.txt, w których zapisano informacje o aktualnie wypożyczonych książkach przez studentów.
Każdy plik ma wiersz nagłówkowy. Dane rozdzielono znakiem tabulacji. Wszystkie dane tekstowe w plikach mają długości nieprzekraczające 60 znaków.
W pliku studenci.txt zapisano dane studentów – jeden student w wierszu. Imiona i nazwiska mogą się powtarzać. W każdym wierszu znajdują się odpowiednio: numer PESEL, nazwisko, imię.
Fragment pliku studenci.txt:
pesel nazwisko imie
92051048757 BAJOREK JAKUB
92051861424 SLOTARZ MARIANNA
Plik meldunek.txt zawiera przypisania studentów z miasteczka akademickiego do wynajętych pokoi. W każdym wierszu znajdują się odpowiednio: numer PESEL studenta oraz identyfikator pokoju.
Fragment pliku meldunek.txt:
pesel id_pok
92051048757 8
92051861424 32
W pliku wypozyczenia.txt zawarto informacje o wypożyczonych podręcznikach. W każdym wierszu zapisano: liczbę porządkową wypożyczenia, numer PESEL wypożyczającego oraz tytuł wypożyczonego podręcznika.
Fragment pliku wypozyczenia.txt:
lp pesel tytul
1 92061083359 FIZYKA TECHNICZNA I
2 94103033254 PROGRAMOWANIE MIKROKONTROLEROW I
Wykorzystując dane zawarte w powyższych plikach i dostępne narzędzia informatyczne, wykonaj zadania. Odpowiedzi zapisz w kolejnych wierszach pliku tekstowego wyniki_5.txt. Odpowiedź do każdego zadania poprzedź numerem tego zadania. Biblioteka planuje wprowadzenie zakazu wypożyczania kilku egzemplarzy tego samego tytułu podręcznika studentom mieszkającym w jednym pokoju. Gdy ta zasada będzie obowiązywać, w żadnym pokoju nie powtórzy się żaden tytuł podręcznika.
Podaj, ile byłoby wypożyczonych podręczników, gdyby takie ograniczenie już funkcjonowało.
Kwerenda 5_1:
SELECT w.tytul & m.id_pok, COUNT(*)-1 AS za_duzo_o
FROM Wypozyczenia AS w INNER JOIN Meldunki AS m ON w.pesel=m.pesel
GROUP BY w.tytul & m.id_pok
HAVING COUNT(*)>1;

Kwerenda 5:
SELECT ((SELECT COUNT(*) AS il_ksiazek FROM Wypozyczenia)-(SELECT SUM(za_duzo_o) FROM 5_1)) AS wypozyczone
FROM 1;
Sytuacja taka sama jak w zadaniu 5.2: FROM 1 występuje tutaj jedynie po to, aby można było taką kwerendę wykonać, zawartość tej tabeli jest nieistotna. 

Pobierz rozwiązanie
Wyszukaj więcej zadań z tego arkusza...