2022-11-01 10:00:17 +01:00
---
geometry: margin=30mm
author: Felix Albrigtsen
...
# EER-modell
![EER-modell ](eer_modell.png )
# Relasjonsmodell
kunde(< u > kunde\_id</ u > , navn, string)
2022-11-01 11:44:14 +01:00
ordre(< u > ordre\_id</ u > , kunde\_id\*, rabatt, betalingsstatus, ordredato, leveringsdato\_antatt, leveringsdato\_faktisk)
2022-11-01 10:00:17 +01:00
2022-11-01 11:44:14 +01:00
bestilling(< u > bestilling\_id</ u > , ordre\_id\*, antall, standardstol\_id\*, spesialstol\_id\*, stoffrull\_id)
2022-11-01 10:00:17 +01:00
> Merk! standardstol\_id og spesialstol\_id brukes som fremmednøkkel, men kan være NULL.
spesialstol(< u > spesialstol\_id</ u > , modellnavn, stoltype, pris)
standardstol(< u > standardstol_id< / u > , modellnavn, stoltype, pris, lagerantall)
del(< u > del\_id</ u > , spesialtstol\_id\*, deltype\_id\*, ferdigstilt)
2022-11-01 11:44:14 +01:00
deltype(< u > deltype\_id</ u > , navn, arbeidsstasjon\_id\*, antall, farge, pris, stoffbehov, beskrivelse)
2022-11-01 10:00:17 +01:00
stoffrull(< u > stoffrull\_id</ u > , deltype\_id\*, meter)
arbeidsstasjon(< u > arbeidsstasjon\_id</ u > , lokasjon)
# Oppgave 2 - SQL
## 2.1 Finn hvor mange (antallet) stolmodeller som finnes av hver stoltype.
```sql
2022-11-01 11:44:14 +01:00
SELECT stoltype, COUNT(modellnavn) FROM spesialstol
2022-11-01 10:00:17 +01:00
UNION
2022-11-01 11:44:14 +01:00
SELECT stoltype, COUNT(modellnavn) FROM standardstol
2022-11-01 10:00:17 +01:00
GROUP BY stoltype;
```
## 2.2 Ut fra alle registrerte ordre (bestillinger): Finn gjennomsnittlig antall bestilte stoler av hver stoltype.
```sql
2022-11-01 11:44:14 +01:00
SELECT AVG(antall) FROM (
2022-11-01 10:00:17 +01:00
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
2022-11-01 11:44:14 +01:00
WHERE b2.standardstol_id IS NULL
2022-11-01 10:00:17 +01:00
)
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;
```