0%

Verbind tabellen in plaats van gegevens te herhalen · eindproject

Eindproject: Project: maak een rapport voor de uitleenbalie

De uitleenbalie heeft één overzicht nodig dat twee vragen tegelijk beantwoordt: welke voorwerpen bestaan er en wie heeft elk voorwerp op dit moment?

Bouw dat overzicht zelfstandig in report.sql. Geef precies deze vijf kolommen terug:

KopWaarde
asset_tagDe code van het voorwerp
item_nameDe naam van het voorwerp
borrower_codeDe huidige lidcode, of NULL
borrower_nameDe naam van het huidige lid, of NULL
checked_out_onDe datum van de actieve uitlening, of NULL

Begin bij items, omdat elk voorwerp moet verschijnen. Koppel met een left join alleen actieve uitleningen en houd de test returned_on IS NULL binnen de ON-voorwaarde van die join. Koppel daarna members met een left join via het lid-ID van de uitlening. De tweede join moet een voorwerp ook behouden wanneer de eerste join geen actieve uitlening heeft gevonden.

Gebruik kolomaliassen voor de twee namen in het resultaat en orden de uiteindelijke rijen op items.asset_tag. Voeg geen filter toe dat ontbrekende overeenkomsten verwijdert. Beschikbare voorwerpen horen in het rapport met drie NULL-velden voor de lener.

Druk op Run en bekijk beide soorten rijen:

IT-100 | Cordless drill | MB-017 | Riley | 2026-08-18
IT-200 | Folding table | NULL | NULL | NULL

De afgeronde uitlening van de klaptafel mag niet als huidige lener verschijnen. Het projectiescherm en de reparatieset hebben geen geschiedenis, maar horen dezelfde vorm met lege lenersgegevens te hebben. De actieve uitlening van de projector moet Sam tonen.

Submit test ID’s en namen die je nog niet hebt gezien, waaronder dubbele getoonde namen en een lid met meerdere actieve uitleningen. Het vereist één correcte rij per voorwerp en de exacte koppen, maar accepteert onschuldige SQL-opmaakverschillen en equivalente joins die hetzelfde gedrag behouden.

Het voltooide rapport laat zien waarom deze kleine relatierijen zo nuttig zijn. Een query volgt ze wanneer details nodig zijn, behoudt ongekoppelde voorwerpen wanneer de vraag dat vereist en interpreteert een ontbrekende actieve overeenkomst zonder extra beschikbaarheidskolom.

Opdracht

Bouw het rapport voor de uitleenbalie in report.sql.

Geef één rij per voorwerp terug met asset_tag, item_name, borrower_code, borrower_name en checked_out_on, geordend op inventariscode. Koppel alleen een actieve uitlening. Beschikbare voorwerpen moeten blijven staan met NULL-waarden voor de lener en afgeronde uitleningen mogen niet als huidige lener verschijnen.