sql-Elternexport für IServ

Übergeordnete Themen zu Schild-NRW

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

sql-Elternexport für IServ

Beitrag von nilleholger »

Hallo zusammen

es gibt für Schild ja grundsätzlich eine Doku zu den SQL-Befehlen, die ich mal erhalten habe: https://github.com/SVWS-NRW/SVWS-DB-Scr ... .mysql.sql

Gäbe es die Möglichkeit (für den iServ-Elternimport) EINE Tabelle mit beiden Elternteilen in getrennten Zeilen mit der jeweiligen Kind-ID zu generieren?

Bsp der Zieltabelle
123. Tim Toll Bergstraße
123. Marie Toll. Bergstraße
124. Anton Adel. Berghain
125. Lukas Lob. Hügelweg
125. Theresa Lob-Hüttig Flachlandes

Meine ersten Gedanken (nur über sql möglich?)

SELECT KIND.ID, Eltern1.Vorname, Eltern1.Nachname, Eltern1.Strasse FROM Eltern, Kind WHERE Eltern.kindID=Kind.ID AND Eltern1.Vorname IS NOT NULL;
UNION ALL
SELECT KIND.ID, Eltern2.Vorname, Eltern2.Nachname, Eltern2.Strasse FROM Eltern, Kind WHERE Eltern.kindID=Kind.ID AND Eltern2.Vorname IS NOT NULL;

Vll hat da jemand schon etwas mehr Gedankenschmalz investiert?
Mit dem Schild Bordmitteln müsste jedes Mal zwei Listen jeder zusammen gekantelt werden.
nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

Re: sql-Elternexport für IServ

Beitrag von nilleholger »

erstes Zwischenergebnis (noch mit Schülern und leeren Zeilen, IS NOT NULL klappt nicht?):

SELECT * FROM (SELECT SchuelerErzAdr.Schueler_ID, SchuelerErzAdr.Vorname1 , SchuelerErzAdr.Name1, SchuelerErzAdr.ID FROM SchuelerErzAdr WHERE SchuelerErzAdr.Vorname1 IS NOT NULL)
UNION ALL
SELECT SchuelerErzAdr.Schueler_ID, SchuelerErzAdr.Vorname2, SchuelerErzAdr.Name2, SchuelerErzAdr.ID FROM SchuelerErzAdr WHERE SchuelerErzAdr.Vorname2 IS NOT NULL;
nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

Re: sql-Elternexport für IServ

Beitrag von nilleholger »

Volljährige Schüler werden noch mit ausgegeben...
Benutzeravatar
Raffenberg
Beiträge: 2157
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: sql-Elternexport für IServ

Beitrag von Raffenberg »

Hallo,
probieren Sie folgendes in der Art:

Code: Alles auswählen

Select * From
(select s.ID, e.Name1, e.Vorname1 From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname1 <> '' and e.Name1 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4)
Union All
(select s.ID, e.Name2, e.Vorname2 From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname2 <> '' and e.Name2 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4)
Order By ID
Die Erzieherart 'Schüler ist volljährig' und 'Schuelerin ist volljährig' müssen sie vorab herausfinden. Bei mir ist es 3 und 4. Sie können das über

Code: Alles auswählen

Select * From K_ErzieherArt
abfragen. Der Befehl müsste noch um die weiteren benötigten Felder erweitert werden.
Mit freundlichen Grüßen
Jens Raffenberg
Hauke Hayen
Fachberater*in
Beiträge: 616
Registriert: Montag 1. Oktober 2018, 17:16
Schulform: Gymnasium

Re: sql-Elternexport für IServ

Beitrag von Hauke Hayen »

Dieser Report kann vielleicht eine Basis sein, der recht einfach mit LibreOffice (besser für csv als Excel) in die gewünschte Struktur gebracht werden kann.
Dateidruck->XLS-Berichtsdatei
Dateianhänge
iserv-Testexport.rtm
(10.96 KiB) 23-mal heruntergeladen
Viele Grüße, H. Hayen
nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

Re: sql-Elternexport für IServ

Beitrag von nilleholger »

unsere Lösung

Code: Alles auswählen


Select * From
(select s.GU_ID, e.Name1, e.Vorname1, e.Name1 From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname1 <> '' and e.Name1 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4 and s.Status=2)
Union All
(select s.GU_ID, e.Name2, e.Vorname2, e.Name1 From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname2 <> '' and e.Name2 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4 and s.Status=2 )
Order By GU_ID

nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

Re: sql-Elternexport für IServ

Beitrag von nilleholger »

Ich musst es noch mal erweitern, da iServ mehrere Attributwerte zu den Eltern erwartet (Straße, Telefon, egal welche..), um Eltern mehrerer Schüler zuverlässig zuordnen zu können.

Leider wirft mir SchILD mit dem SQL nun die Fehlermeldung "Fehler bei der Ausführung: Parameter e.ErzStrassenname hat keinen Standardwert"

Code: Alles auswählen

Select * From
(select s.GU_ID, e.Name1, e.Vorname1, e.ErzStrassenname, e.ErzHausNr, e.ErzOrt_ID From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname1 <> '' and e.Name1 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4 and s.Status=2)
Union All
(select s.GU_ID, e.Name2, e.Vorname2, e.ErzStrassenname, e.ErzHausNr, e.ErzOrt_ID From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname2 <> '' and e.Name2 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4 and s.Status=2 )
Order By GU_ID
nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

Re: sql-Elternexport für IServ

Beitrag von nilleholger »

Ahh, falsches Schema:

Code: Alles auswählen

Select * From
(select s.GU_ID, e.Name1, e.Vorname1, e.ErzStrasse, e.ID From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname1 <> '' and e.Name1 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4 and s.Status=2)
Union All
(select s.GU_ID, e.Name2, e.Vorname2, e.ErzStrasse, e.ID From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname2 <> '' and e.Name2 <> '' and e.erzieherart_ID <> 3 and  e.erzieherart_ID <> 4 and s.Status=2 )
Order By GU_ID
nilleholger
Beiträge: 22
Registriert: Dienstag 26. Mai 2020, 08:55
Schulform: Gesamtschule

Re: sql-Elternexport für IServ

Beitrag von nilleholger »

Eltern, die keinAnschreiben erhalten sollen, sollten auch nicht mit ausgegeben werden:

Select * From
(select s.GU_ID, e.Name1, e.Vorname1, e.ErzStrasse, e.ID From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname1 <> '' and e.Name1 <> '' and e.erzieherart_ID <> 3 and e.erzieherart_ID <> 4 and s.Status=2)
Union All
(select s.GU_ID, e.Name2, e.Vorname2, e.ErzStrasse, e.ID From SchuelerErzAdr as e
Inner Join Schueler as s on s.ID = e.Schueler_ID
Where e.Vorname2 <> '' and e.Name2 <> '' and e.erzieherart_ID <> 3 and e.erzieherart_ID <> 4 and s.Status=2 )
Order By GU_ID
Ado
Beiträge: 6
Registriert: Freitag 1. April 2022, 10:11
Schulform: Gymnasium

Re: sql-Elternexport für IServ

Beitrag von Ado »

Hallo,

vielen lieben Dank für diesen superhilfreichen SQL-Befehl. Er erspart uns eine Menge Arbeit. Bei mir werden aber die "Eltern ohne Anschreiben" ebenfalls mit in die Exeldatei geschrieben.

Hat jemand einen Tipp, wie man den Befehl so anpassen kann, dass tatsächlich nur die "Elternteile mit Anschreiben" ausgegeben werden?

Und was genau ist das für eine ID, die bei e.ID ausgegeben wird? Wird meiner Einschätzung nach nicht benötigt, ich würde dennoch gerne wissen, woher diese ID stammt.

Vielen Dank und herzliche Grüße
Mirco A.
Antworten

Zurück zu „Allgemeines“