Selects SQL et Schema de la base de données

Selects SQL et Schema de la base de données

Pour consulter le schéma de la base de donnée, veuillez cliquer ici.

Ce schéma ne contient pas les liaisons inter-tables car elles sont générées par le Framework ScalikeJDBC et ne sont pas reconnues par Workbench, logiciel utilisé pour créer ce schéma.

Voici une liste sélective de requêtes SQL Select. Pour utiliser ces différentes requêtes, il faut aller sous l’onglet Auswertungen de la partie Administration d’OpenOlitor.

Quels sont les abonnements qui commencent entre la date ‘xxxx-xx-xx’ et la date ‘xxxx-xx-xx’

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’

Quels sont les abonnements de livraison au dépôt qui commencent entre la date ‘xxxx-xx-xx’ et la date ‘xxxx-xx-xx’

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’

Quels sont les abonnements de livraison au heim qui commencent entre la date ‘xxxx-xx-xx’ et la date ‘xxxx-xx-xx’

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’

Quels sont les abonnements de livraison au post qui commencent entre la date ‘xxxx-xx-xx’ et la date ‘xxxx-xx-xx’

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’

Quels sont les abonnements qui commencent avant la date ‘xxxx-xx-xx’

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’

Quel client a combien d’absences pour la période de ‘xxxx-xx-xx’ à ‘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’

Quelles sont les factures avec le titre ‘XXX’

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

Total des abonnements par type d’abonnement qui commencent entre la date ‘xxxx-xx-xx’ et la date ‘xxxx-xx-xx’ et qui finissent ntre la date ‘xxxx-xx-xx’ et la date ‘xxxx-xx-xx’

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

Nombre de paniers livrés depuis toujours

select sum(anzahl_koerbe) Korbanzahl from DepotAuslieferung;

Quantités de produits livrées par producteur au cours d’une période donnée

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