---
geometry: margin=30mm
author: Felix Albrigtsen
...
# EER-modell
![EER-modell](eer_modell.png)
# Relasjonsmodell
kunde(kunde\_id, navn, string)
ordre(ordre\_id, kunde\_id\*, rabatt, betalingsstatus, ordredato, leveringsdato\_antatt, leveringsdato\_faktisk)
bestilling(bestilling\_id, ordre\_id\*, antall, standardstol\_id\*, spesialstol\_id\*, stoffrull\_id)
> Merk! standardstol\_id og spesialstol\_id brukes som fremmednøkkel, men kan være NULL.
spesialstol(spesialstol\_id, modellnavn, stoltype, pris)
standardstol(standardstol_id, modellnavn, stoltype, pris, lagerantall)
del(del\_id, spesialtstol\_id\*, deltype\_id\*, ferdigstilt)
deltype(deltype\_id, navn, arbeidsstasjon\_id\*, antall, farge, pris, stoffbehov, beskrivelse)
stoffrull(stoffrull\_id, deltype\_id\*, meter)
arbeidsstasjon(arbeidsstasjon\_id, lokasjon)
# Oppgave 2 - SQL
## 2.1 Finn hvor mange (antallet) stolmodeller som finnes av hver stoltype.
```sql
SELECT stoltype, COUNT(modellnavn) FROM spesialstol
UNION
SELECT stoltype, COUNT(modellnavn) FROM standardstol
GROUP BY stoltype;
```
## 2.2 Ut fra alle registrerte ordre (bestillinger): Finn gjennomsnittlig antall bestilte stoler av hver stoltype.
```sql
SELECT AVG(antall) FROM (
SELECT b1.antall, sts.stoltype FROM bestilling b1
LEFT JOIN standardstol sts
ON b.standardstol_id = sts.standardstol_id
WHERE b1.spesialstol_id IS NULL
UNION
SELECT b2.antall, sps.stoltype FROM bestilling b2
LEFT JOIN spesialstol sps
ON b2.spesialstol_id = sps.spesialstol_id
WHERE b2.standardstol_id IS NULL
)
GROUP BY stoltype;
```
## 2.3 Finn det totale antallet stoler som finnes i bestilling, og som enda ikke er levert kunder. Tips: Sjekk på reell leveringsdato (dvs. om ordren er effektuert)
```sql
SELECT SUM(b.antall) AS "Bestilte stoler, ikke levert"
FROM bestilling b
LEFT JOIN ordre o
ON b.ordre_id = o.ordre_id
WHERE o.leveringsdato_faktisk IS NULL;
```
## 2.4 Finn ut hvor mange (antallet) av stolene i spørring 3 over som er standardstoler.
```sql
SELECT SUM(b.antall) AS "Bestilte standardstoler, ikke levert"
FROM bestilling b
LEFT JOIN ordre o
ON b.ordre_id = o.ordre_id
WHERE o.leveringsdato_faktisk IS NULL
AND b.spesialstol_id IS NULL;
```