DarkSQL by Darkleo.com
DarkSQL
Mengenoperationen und VIEW
Zu welchen Aufträgen (Auftragsnummer) gibt es Rechnungen ?
select auftrag_nrfrom auftraege intersect select auftrag_nr from rechnungen; |
Zu welchen Aufträgen (Auftragsnummer) gibt es keine Rechnungen ?
select auftrag_nrfrom auftraege minus select auftrag_nr from rechnungen; |
select namefrom kunden intersect select name from lieferanten; |
Erzeugen Sie einen View „Auftragswert" mit folgenden Daten: Auftragsnummer, Kundennummer, Auftragsdatum, Auftragswert (= Verkaufspreis * Verkaufsmenge summiert über alle Positionen des Auftrages). Testen Sie den View (mittels select)
create view auftragswert (auftragsnummer, kundennummer, auftragsdatum, auftragswert)as select a.auftrag_nr, kunde_nr, auftrag_datum, sum(menge*preis) from auftraege a join auftragspositionen p on a.auftrag_nr = p.auftrag_nr group by a.auftrag_nr, kunde_nr, auftrag_datum; |
Erzeugen Sie einen View, der jahresweise die Summe der Auftragswerte aller Aufträge des Jahres zeigt. Basieren Sie den View auf dem View „Auftragswert".
create view jahreswert (jahr, auftragswert)as select extract(year from auftragsdatum), sum(auftragswert) from auftragswert group by extract(year from auftragsdatum); |
Erstellen Sie einen View, der - sortiert nach Datum -die an dem jeweiligen Tag fälligen Rechnungsbeträge (unbezahlt!) aufführt.
create view faellige_betraege (datum, betrag)as select datum_faellig, sum(rechnung_betrag) from rechnungen where bezahlt = 0 group by datum_faellig; |
create view zahlverhalten (kunde, tage)as select kunde_nr , sum( case when bezahlt=1 then zahldatum- datum_faellig else current_date – datum_faellig end ) from rechnungen group by kunde_nr; |
Ermitteln Sie mit Hilfe des vorigen Views, welcher Kunde sich im Schnitt am meisten Zeit lässt, seine Rechnungen zu bezahlen (nur select, kein view)
select kundefrom zahlverhalten where tage = (select max(tage) from zahlverhalten); |