Lab 4
This commit is contained in:
commit
8b75ccd3be
|
@ -0,0 +1,53 @@
|
||||||
|
USE BILBLIOTEKA_2022;
|
||||||
|
|
||||||
|
-- 1. WYŚWIETL DANE O WYPOŻYCZENIA: TYTUŁ KSIĄŻKI, NAZWISKO NAJWAŻNIEJSZEGO AUTORA,
|
||||||
|
-- NAZWISKO CZYTELNIKA, DATA WYPOŻYCZENIA W FORMACIE STOSOWANYM W USA ORAZ
|
||||||
|
-- DATA ZWROTU W FORMACIE STOSOWANYM W POLSCE (CONVERT).
|
||||||
|
SELECT tytul, autor.nazwisko AS autor_nazwisko, czytelnik.nazwisko AS czytelnik_nazwisko, convert(varchar, data_wypozyczenia, 103) AS data_wypozyczenia, convert(varchar, data_zwrotu, 103) AS data_zwrotu FROM ksiazka
|
||||||
|
INNER JOIN autor_ksiazki ON ksiazka.id_ksiazka=autor_ksiazki.id_ksiazka
|
||||||
|
INNER JOIN autor ON autor_ksiazki.id_autor=autor.id_autor
|
||||||
|
INNER JOIN egzemplarz ON ksiazka.id_ksiazka=egzemplarz.id_ksiazka
|
||||||
|
INNER JOIN wypozyczenie ON egzemplarz.id_egzemplarz=wypozyczenie.id_egzemplarz
|
||||||
|
INNER JOIN czytelnik ON wypozyczenie.id_czytelnik=czytelnik.id_czytelnik;
|
||||||
|
|
||||||
|
-- 2. WYŚWIETLIĆ NAZWISKO, IMIĘ CZYTELNIKA ORAZ ŚREDNI CZAS POMIĘDZY DATĄ ZWROTU,
|
||||||
|
-- A DATĄ WYPOŻYCZENIA (DATEDIFF, DLA KSIĄŻEK, KTÓRE ZOSTAŁY ZWRÓCONE).
|
||||||
|
SELECT wypozyczenie.id_czytelnik FROM czytelnik
|
||||||
|
INNER JOIN wypozyczenie ON czytelnik.id_czytelnik=wypozyczenie.id_czytelnik
|
||||||
|
GROUP BY wypozyczenie.id_czytelnik
|
||||||
|
|
||||||
|
-- 3. WYŚWIETL NAZWISKA CZYTELNIKÓW KTÓRZY NIC NIE WYPOŻYCZALI (2 SPOSOBY)
|
||||||
|
SELECT nazwisko FROM czytelnik
|
||||||
|
LEFT JOIN wypozyczenie ON czytelnik.id_czytelnik=wypozyczenie.id_czytelnik
|
||||||
|
WHERE id_wypozyczenie IS NULL
|
||||||
|
|
||||||
|
-- 4. WYŚWIETLIĆ NAZWISKO, IMIĘ CZYTELNIKA, NAZWĘ KSIĄŻKI ORAZ KARĘ
|
||||||
|
-- (20 GR ZA KAŻDY DZIEŃ) DLA CZYTELNIKÓW PRZETRZYMUJĄCYCH KSIĄŻKI
|
||||||
|
-- (JEŻELI MINĘŁO WIĘCEJ NIŻ TRZY MIESIĄCE OD DATY WYPOŻYCZENIA).
|
||||||
|
SELECT imie, nazwisko,
|
||||||
|
CASE
|
||||||
|
WHEN data_zwrotu IS NOT NULL THEN ((datediff(day, data_wypozyczenia, data_zwrotu) - 90) * 0.2)
|
||||||
|
WHEN data_zwrotu IS NULL THEN ((datediff(day, data_wypozyczenia, getdate()) - 90) * 0.2)
|
||||||
|
END AS kara
|
||||||
|
FROM wypozyczenie
|
||||||
|
INNER JOIN czytelnik ON wypozyczenie.id_czytelnik=czytelnik.id_czytelnik
|
||||||
|
|
||||||
|
SELECT datediff(day, data_wypozyczenia, data_zwrotu) FROM wypozyczenie
|
||||||
|
WHERE data_zwrotu IS NOT NULL
|
||||||
|
|
||||||
|
SELECT ((datediff(day, data_wypozyczenia, getdate()) - 90) * 0.2) FROM wypozyczenie
|
||||||
|
WHERE data_zwrotu IS NULL
|
||||||
|
|
||||||
|
-- 5. WYŚWIETLIĆ DLA KAŻDEGO WYDAWNICTWA MIESIĘCZNE ZESTAWIENIE ZA OKRES
|
||||||
|
-- OSTATNICH KILKU LAT ZAWIERAJĄCE INFORMACJE O KWOCIE NA JAKĄ W KAŻDYM
|
||||||
|
-- MIESIĄCU ZAKUPIONE ZOSTAŁY KSIĄŻKI Z KAŻDEGO WYDAWNICTWA. (DATEPART)
|
||||||
|
|
||||||
|
|
||||||
|
SELECT nazwa, ilosc * cena FROM wydawnictwo w1
|
||||||
|
INNER JOIN faktura ON w1.id_wydawnictwo=faktura.id_wydawnictwo
|
||||||
|
INNER JOIN pozycja_faktury ON faktura.id_faktura=pozycja_faktury.id_faktura
|
||||||
|
WHERE (month(data)) IN (
|
||||||
|
SELECT month(data) FROM wydawnictwo w2
|
||||||
|
INNER JOIN faktura ON w2.id_wydawnictwo=faktura.id_wydawnictwo
|
||||||
|
WHERE w1.id_wydawnictwo=w2.id_wydawnictwo
|
||||||
|
)
|
Loading…
Reference in New Issue