Seite 1 von 2

sql-Elternexport für IServ

Verfasst: Freitag 10. März 2023, 09:11
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.

Re: sql-Elternexport für IServ

Verfasst: Freitag 10. März 2023, 12:27
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;

Re: sql-Elternexport für IServ

Verfasst: Freitag 10. März 2023, 12:31
von nilleholger
Volljährige Schüler werden noch mit ausgegeben...

Re: sql-Elternexport für IServ

Verfasst: Freitag 10. März 2023, 15:00
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.

Re: sql-Elternexport für IServ

Verfasst: Freitag 10. März 2023, 18:39
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

Re: sql-Elternexport für IServ

Verfasst: Mittwoch 29. März 2023, 11:42
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


Re: sql-Elternexport für IServ

Verfasst: Donnerstag 30. März 2023, 13:21
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

Re: sql-Elternexport für IServ

Verfasst: Donnerstag 30. März 2023, 13:25
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

Re: sql-Elternexport für IServ

Verfasst: Dienstag 15. August 2023, 11:52
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

Re: sql-Elternexport für IServ

Verfasst: Dienstag 5. September 2023, 14:48
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.