Das Datenbank-Schema von OpenOlitor ist hier veröffentlicht.

Dieses Schema wurde mit Workbench erstellt. Das Framework ScalikeJDBC verwaltet die Primärschlüssel/Fremdschlüssel-Beziehungen von OpenOlitor. Diese Beziehungen sind in dieser Ansicht nicht sichtbar.

Nachfolgend eine Liste von SQL-Abfragen, die in der Navigation links von OpenOlitor unter „Administration“ –> „Auswertungen“ eingefügt werden können. Gewisse der nachfolgenden Selects können auch direkt in der Listenansicht durch den Einsatz der Filter- oder Suchfunktion erstellt werden.

Welche Abonnements wurden in der Periode zwischen ‘xxxx-xx-xx’ und ‘xxxx-xx-xx’ erstellt? Die Daten müssen angepasst werden.

select * from Kunde k
left join DepotlieferungAbo depAbo on k.id = depAbo.kunde_id
left join HeimlieferungAbo heiAbo on k.id = heiAbo.kunde_id
left join PostlieferungAbo posAbo on k.id = posAbo.kunde_id
where depAbo.start between ‘2010-01-01’ and ‘2010-12-31’
or heiAbo.start between ‘2010-01-01’ and ‘2018-12-31’
or posAbo.start between ‘2010-01-01’ and ‘2010-12-31’

Welche Abos mit Depotlieferung wurden in der Periode zwischen dem Datum ‘xxxx-xx-xx’ und dem Datum ‘xxxx-xx-xx’ erstellt?

select * from Kunde k
left join DepotlieferungAbo depAbo on k.id = depAbo.kunde_id
where depAbo.start between ‘2010-01-01’ and ‘2010-12-31’

Welche Abos mit Hauslieferung wurden in der Periode zwischen dem Datum ‘xxxx-xx-xx’ und dem Datum ‘xxxx-xx-xx’ erstellt?

select * from Kunde k
left join HeimlieferungAbo heiAbo on k.id = heiAbo.kunde_id
where heiAbo.start between ‘2010-01-01’ and ‘2018-12-31’

Welche Abos mit Postauslieferung wurden in der Periode zwischen dem Datum ‘xxxx-xx-xx’ und dem Datum ‘xxxx-xx-xx’ erstellt?

select * from Kunde k
left join PostlieferungAbo posAbo on k.id = posAbo.kunde_id
where posAbo.start between ‘2010-01-01’ and ‘2010-12-31’

Welche Abos sind vor dem Datum ‘xxxx-xx-xx’ gestartet worden?

select * from Kunde k
left join DepotlieferungAbo depAbo on k.id = depAbo.kunde_id
left join HeimlieferungAbo heiAbo on k.id = heiAbo.kunde_id
left join PostlieferungAbo posAbo on k.id = posAbo.kunde_id
where depAbo.start < ‘2010-01-01’
or heiAbo.start < ‘2018-01-01’
or posAbo.start < ‘2010-01-01’

Welche Mitglieder verfügen über wieviele Abwesenheitn in der Periode vom Datum ‘xxxx-xx-xx’ bis zum Datum ‘xxxx-xx-xx’?

select k.id, k.bezeichnung, depAbo.start as depstart, depAbo.ende as depende, depAbo.anzahl_abwesenheiten as depanzhal, heiAbo.start as heistart, heiAbo.ende as heiende, heiAbo.anzahl_abwesenheiten as heianzhal, posAbo.start as poststart, posAbo.ende as postende, posAbo.anzahl_abwesenheiten as postanzhal from Kunde k
left join DepotlieferungAbo depAbo on k.id = depAbo.kunde_id
left join HeimlieferungAbo heiAbo on k.id = heiAbo.kunde_id
left join PostlieferungAbo posAbo on k.id = posAbo.kunde_id
where depAbo.start between ‘2010-01-01’ and ‘2019-12-31’ and depAbo.ende between ‘2010-01-01’ and ‘2019-12-31’
or heiAbo.start between ‘2010-01-01’ and ‘2018-12-31’ and heiAbo.ende between ‘2010-01-01’ and ‘2010-12-31’
or posAbo.start between ‘2010-01-01’ and ‘2010-12-31’ and posAbo.ende between ‘2010-01-01’ and ‘2010-12-31’

Suche nach allen Rechnungen mit dem Titel ‘XXX’

select * from Kunde k
left join Rechnung re on k.id = re.kunde_id
where re.titel = « Neuabo Juni 2016 »

Anzahl Abonnements pro Abotyp, die nach dem Datum ‘xxxx-xx-xx’ begonnen bis zum  Datum ‘xxxx-xx-xx’ beendet wurden

select a.id, a.name, count(depAbo.id), count(heiAbo.id), count(posAbo.id), count(zuAbo.id) from Abotyp a
left join DepotlieferungAbo depAbo on a.id = depAbo.abotyp_id
left join HeimlieferungAbo heiAbo on a.id = heiAbo.abotyp_id
left join PostlieferungAbo posAbo on a.id = posAbo.abotyp_id
left join ZusatzAbo zuAbo on a.id = zuAbo.abotyp_id
where depAbo.start between ‘2010-01-01’ and ‘2010-12-31’ and depAbo.ende between ‘2010-01-01’ and ‘2010-12-31’
or heiAbo.start between ‘2010-01-01’ and ‘2018-12-31’ and heiAbo.ende between ‘2010-01-01’ and ‘2010-12-31’
or posAbo.start between ‘2010-01-01’ and ‘2010-12-31’ and posAbo.ende between ‘2010-01-01’ and ‘2010-12-31’
group by a.name

Anzahl der seit Inbetriebnahme von OpenOlitor ausglieferten Körbe

select sum(anzahl_koerbe) Korbanzahl from DepotAuslieferung;

Total der Menge der von den einzelnen Produzenten zwischen dem Datum xxxx-xx-xx und dem Datum xxxx-xx-xx geliefert wurden

select bp.produkt_beschrieb, sb.produzent_kurzzeichen, sum(bp.menge * bp.anzahl) menge, bp.einheit from Bestellposition bp
join Bestellung b on bp.bestellung_id = b.id
join Sammelbestellung sb on b.sammelbestellung_id = sb.id
where sb.datum > ‘2017-06-01 00:00:00.0’ and sb.datum < ‘2018-06-01 00:00:00.0’
group by bp.produkt_beschrieb, sb.produzent_kurzzeichen, bp.einheit
order by menge desc