-- Prebacimo se na bazu LosFilm4
USE LosFilm4;


--Zadatak 1.
--a) Ispišite naziv, trajanje i žanr svih filmova u bazi
SELECT 
	Film.Naziv AS 'Film', 
	Film.Trajanje, 
	Zanr.Naziv AS 'Žanr'
	FROM Film
	INNER JOIN Zanr ON Zanr.ID = Film.ZanrID;

--b) Ispišite ime i prezime, adresu, kućni broj, poštanski broj i naselje svakog od članova u videoteci
SELECT 
	Clan.ImePrezime AS 'Ime i prezime', 
	Clan.Ulica + ' ' + Clan.KucniBroj AS 'Adresa',
	Mjesto.PostanskiBroj AS 'Poštanski broj',
	Mjesto.Naselje
	FROM Clan
	INNER JOIN Mjesto ON Mjesto.ID = Mjesto.ID;

--c) Ispišite naziv, trajanje i žanr svih filmova u bazi koji su snimljeni na DVD-u
-- pripremni upiti - nalaženje ID-a medija koji je DVD
SELECT ID FROM Medij WHERE Medij.Naziv = 'DVD';
-- završni upit
SELECT 
	Film.Naziv AS 'Film', Film.Trajanje, Zanr.Naziv AS N'Žanr'
	FROM Film
	INNER JOIN Zanr ON Zanr.ID = Film.ZanrID
	WHERE Film.MedijID = 1;
	
---------------------------------------------------------------------------------------
--Zadatak 2.
--a) Ispišite sve nazive filmova i pripadne medije (naziv medija) za svaki film.
-- pripremni upiti
SELECT * FROM Film;
SELECT * FROM Medij;
-- završni upit
SELECT
	Film.Naziv AS 'Naziv filma',
	Medij.Naziv AS 'Naziv medija'
FROM Film
INNER JOIN Medij ON Film.MedijID = Medij.ID;


--b) Ispišite sve nazive filmova, pripadne medije i žanr svakog filma.
-- pripremni upiti
SELECT * FROM Film;
SELECT * FROM Medij;
SELECT * FROM Zanr;
-- završni upit
SELECT
	Film.Naziv AS 'Naziv filma',
	Medij.Naziv AS 'Naziv medija',
	Zanr.Naziv AS 'Naziv žanra'	
FROM Film
INNER JOIN Medij ON Film.MedijID = Medij.ID
INNER JOIN Zanr  ON Film.ZanrID  = Zanr.ID;


--c) Ispišite za jednog člana sve filmove koje je posudio (člana biramo po njegovoj ID oznaci).
-- pripremni upiti
SELECT * FROM Clan;
SELECT * FROM Film;
SELECT * FROM Posudba;
-- završni upit za člana sa ID-om 1
SELECT DISTINCT
	Posudba.ClanID,
	Film.Naziv
FROM Posudba
INNER JOIN Film ON Film.ID = Posudba.FilmID
WHERE ClanID = 1;


--d) Za neki film ispišite sve članove koji su ga posuđivali, složeno po imenu i prezimenu člana.
-- pripremni upiti
SELECT * FROM Film;
SELECT * FROM Clan;
SELECT * FROM Posudba;
-- završni upit
SELECT DISTINCT
	Film.Naziv,
	Clan.ImePrezime
FROM Posudba
INNER JOIN Film ON Film.ID = Posudba.FilmID
INNER JOIN Clan ON Clan.ID = Posudba.ClanID
WHERE Film.ID = 1
ORDER BY Clan.ImePrezime;

--e) Ispišite imena i prezimena te pune adrese svih članova koji su platili zakasninu.
-- pripremni upiti
SELECT * FROM Clan;
SELECT * FROM Mjesto;
SELECT * FROM Zakasnina;
-- završni upit
SELECT DISTINCT
	Clan.ImePrezime,
	Clan.Ulica + ' ' + 
		RTRIM(CAST(Clan.KucniBroj AS NVARCHAR)) + ', ' + 
			CAST(Mjesto.PostanskiBroj AS NVARCHAR) + ' ' + 
				Mjesto.Naselje
					AS 'Puna adresa'
FROM Zakasnina
INNER JOIN Clan ON Clan.ID = Zakasnina.ClanID
INNER JOIN Mjesto ON Mjesto.ID = Clan.MjestoID;

--f) Ispišite nazive svih filmova i u koja sva mjesta su posuđivani.
-- pripremni upiti
SELECT * FROM Film;
SELECT * FROM Clan;
SELECT * FROM Mjesto;
SELECT * FROM Posudba;
-- završni upit
SELECT DISTINCT
	Film.Naziv AS 'Naziv filma',
	Mjesto.Naziv AS 'Naziv mjesta'
FROM Posudba
INNER JOIN Film   ON Film.ID   = Posudba.FilmID
INNER JOIN Clan   ON Clan.ID   = Posudba.ClanID
INNER JOIN Mjesto ON Mjesto.ID = Clan.ID;

--g) Ispišite ime i prezime člana te koje je sve žanrove filmova posuđivao (pazite na ‘dupliće’).
-- pripremni upiti
SELECT * FROM Film;
SELECT * FROM Zanr;
SELECT * FROM Clan;
SELECT * FROM Posudba;
-- završni upit
SELECT DISTINCT
	Clan.ImePrezime,
	Zanr.Naziv	
FROM Posudba
INNER JOIN Film ON Film.ID = Posudba.FilmID
INNER JOIN Zanr ON Zanr.ID = Film.ID
INNER JOIN Clan ON Clan.ID = Posudba.ClanID;

--h) Ispišite imena i prezimena te pune adrese svih članova koji su platili zakasninu za neki film i koji je to film (3 spajanja).
-- pripremni upiti
SELECT * FROM Clan;
SELECT * FROM Mjesto;
SELECT * FROM Zakasnina;
SELECT * FROM Film;
-- završni upit
SELECT DISTINCT
	Clan.ImePrezime,
	Clan.Ulica + ' ' + 
		RTRIM(CAST(Clan.KucniBroj AS NVARCHAR)) + ', ' + 
			CAST(Mjesto.PostanskiBroj AS NVARCHAR) + ' ' + 
				Mjesto.Naselje
					AS 'Puna adresa',
	Film.Naziv
FROM Zakasnina
INNER JOIN Clan ON Clan.ID = Zakasnina.ClanID
INNER JOIN Mjesto ON Mjesto.ID = Clan.MjestoID
INNER JOIN Film ON Film.ID = Zakasnina.FilmID;


--i) Ispišite naziv filma i naziv mjesta u koje je posuđen dani film (3 spajanja).
-- pripremni upiti
SELECT * FROM Clan;
SELECT * FROM Mjesto;
SELECT * FROM Posudba;
SELECT * FROM Film;
-- završni upit
SELECT DISTINCT
	Film.Naziv AS 'Naziv filma',
	Mjesto.Naziv AS 'Naziv mjesta'
FROM Posudba
INNER JOIN Clan ON Clan.ID = Posudba.ClanID
INNER JOIN Mjesto ON Mjesto.ID = Clan.MjestoID
INNER JOIN Film ON Film.ID = Posudba.FilmID
WHERE Film.ID = 1;