Seite 2 von 3
Re: sql-Elternexport für IServ
Verfasst: Dienstag 5. September 2023, 21:08
von Raffenberg
In IServ werden alle Schüler mit einer ID angelegt. Hierzu wird entweder die in Schild übliche GUID importiert. Bei einem späteren Abgleich der Daten zwischen Schild und IServ wird diese GUID/ID verwendet.
Damit die erzieherdaten dementsprechenden Schüler zugeordnet werden können, muss ebenfalls diese GUID bzw ID übergeben werden.
Aus dem Kopf heraus: sie müssen in der Where-Klausel folgendes ergänzen:
ErhaeltAnschreiben = '+'
Re: sql-Elternexport für IServ
Verfasst: Mittwoch 6. September 2023, 20:04
von Ado
Hallo,
danke schön für die schnelle Hilfe.
Hier der erweiterte Befehl, so dass nur Erzieher aufgeführt werden, die ein Anschreiben erhalten:
Select * From
(select s.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 and ErzAnschreiben = '+')
Union All
(select s.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 and ErzAnschreiben = '+')
Order By s.ID
Re: sql-Elternexport für IServ
Verfasst: Mittwoch 7. August 2024, 13:52
von Ado
Hallo nochmal,
neues Jahr - neue Frage

:
Dieser Befehl hat letztes Jahr gut funktioniert:
Select * From
(select s.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 and ErzAnschreiben = '+')
Union All
(select s.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 and ErzAnschreiben = '+')
Order By s.ID
Frage:
Gibt es eine Möglichkeit den Befehl so zu erweitern, dass er nur Erzieher ausgibt, die zu einem Kind gehören, welches aktuell in der Jahrgangsstufe 5 ist?
Vielen lieben Dank schonmal im Voraus!
Lg
Re: sql-Elternexport für IServ
Verfasst: Mittwoch 7. August 2024, 21:51
von 011marTusch
Hallo,
damit bekomme ich ein Ergebnis:
Code: Alles auswählen
Select * From
(select s.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 and e.ErzAnschreiben = '+' and s.Jahrgang=5)
Union All
(select s.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 and e.ErzAnschreiben = '+' and s.Jahrgang=5)
Order By s.ID
Meine Testdatenbank ist allerdings etwas struppig. Daher bitte auf Plausibilität prüfen.
Re: sql-Elternexport für IServ
Verfasst: Freitag 9. August 2024, 21:47
von Ado
Hallo,
vielen lieben Dank. Das hat mir sehr geholfen!
Ich musste den Befehl nur noch minimal abändern. Denn s.Jahrgang gibt wohl die Schulbesuchsjahre an und nicht den Jahrgang. Hierfür habe ich ASDJahrgang verwendet.
So funktioniert er bei mir:
Select * From
(select s.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 and ErzAnschreiben = '+' and ASDJahrgang='05')
Union All
(select s.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 and ErzAnschreiben = '+' and ASDJahrgang='05')
Order By s.ID
Lg M. Ado
Re: sql-Elternexport für IServ
Verfasst: Dienstag 1. April 2025, 07:52
von K. Berger
Hallo,
ich habe den sql-Befehl von oben für unsere Bedürfnisse angepasst, er funktioniert lokal mit einer Testdatenbank und einer nicht ganz aktuellen SchILD-Version (mdb-Datenbank) problemlos:
Code: Alles auswählen
Select * From
(select s.ID AS SID, e.Name1, e.Vorname1, e.ErzStrasse, e.ID, e.ErzAnschreiben 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 and e.ErzAnschreiben='+')
Union All
(select s.ID AS SID, e.Name2, e.Vorname2, e.ErzStrasse, e.ID, e.ErzAnschreiben 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 and e.ErzAnschreiben='+')
Order By SID
In der Schule (2.0.34.2, SQL-Datenbank) erhalte ich folgende Fehlermeldung:"Fehler bei der Ausführung: Incorrect syntax near the keyword 'union'".
Wer weiß Rat?
Viele Grüße
Kay Berger
Re: sql-Elternexport für IServ
Verfasst: Dienstag 1. April 2025, 09:12
von waedt
Hallo,
wir exportieren und nutzen Excel mit Query-Abfragen um die Daten für iServ vorzubereiten:
1. Alle SuS müssen sichtbar sein (keine Filter!)
2. Datenaustausch - Export in Text/Excel-Datei - Exportieren
3. Alle Eltern (1. und 2. Person) wie folgt exportieren
- Vorlage laden "Export 1. Person aus Schild nach iServ" und exportieren
- Vorlage laden "Export 2. Person aus Schild nach iServ" und exportieren
5. Die Excel-Datei "Erzieher" öffnen und mit Query-Abfragen in den Mappen Erzieher01, Erzieher02 und Erzieher aktualisieren
7. In der Mappe Erzieher stehen dann alle Erzieher untereinander nach Schüler-ID sortiert
8. In die Mappe Export wechseln
- prüfen, ob in der Tabelle alle Zeilen aus der Mappe Erzieher verknüft wurden
- Die Excel-Tabelle speichern
- Die Daten aus der Mappe Export als CSV-Datei speichern in der Datei "Erzieher.csv"
Diese csv-Datei wird in iServ importiert
9 Nach iServ wechseln
10 Die csv-Datei der Eltern mit dem Eltern-Import-Profil importieren
Re: sql-Elternexport für IServ
Verfasst: Dienstag 1. April 2025, 15:37
von Raffenberg
Copilot meldet folgendes hierzu:
Es scheint, dass die SQL-Syntax in einer SQL-Datenbank etwas anders ist als in Access. Hier sind einige Anpassungen, die du vornehmen kannst, um die Abfrage in einer SQL-Datenbank korrekt auszuführen:
1. **Klammern um die Union-Abfragen**: SQL-Datenbanken benötigen oft Klammern um die einzelnen Abfragen, die durch `UNION` verbunden sind.
2. **Alias für die Union-Abfrage**: Manchmal hilft es, der gesamten Union-Abfrage einen Alias zu geben.
Hier ist eine angepasste Version deiner Abfrage:
Code: Alles auswählen
SELECT * FROM (
(SELECT s.ID AS SID, e.Name1, e.Vorname1, e.ErzStrasse, e.ID, e.ErzAnschreiben
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 AND e.ErzAnschreiben = '+')
UNION ALL
(SELECT s.ID AS SID, e.Name2, e.Vorname2, e.ErzStrasse, e.ID, e.ErzAnschreiben
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 AND e.ErzAnschreiben = '+')
) AS UnionQuery
ORDER BY SID;
Versuche diese Anpassungen und lass mich wissen, ob es funktioniert!

Re: sql-Elternexport für IServ
Verfasst: Sonntag 6. April 2025, 18:09
von Frodermann
Ahaaha, der Herr Chatbot ist nun auch Fachberater hier.
Sachlicher Beitrag: Bei SQL-Dialekten (untereinander und/oder zu MS Access) unterscheiden sich auch manchmal die zu verwendenden Anführungszeichen " oder ' oder... das wäre dann ebenfalls anzupassen.
Re: sql-Elternexport für IServ
Verfasst: Donnerstag 23. April 2026, 09:46
von nilleholger
Wir arbeiten seit Jahren mit dieser Lösung gut:
Code: Alles auswählen
Select * From
(select s.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 Geloescht <> '+' and e.Vorname1 <> '' and e.Name1 <> '' and s.Status=2 and e.erzieherart_ID <> 3 and e.erzieherart_ID <> 4 and ErzAnschreiben = '+')
Union All
(select s.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 Geloescht <> '+' and e.Vorname2 <> '' and e.Name2 <> '' and s.Status=2 and e.erzieherart_ID <> 3 and e.erzieherart_ID <> 4 and ErzAnschreiben = '+')
Order By s.ID
Allerdings werden zu SuS, die in SchiLD als volljährig deklariert wurden, die Eltern nicht mehr exportiert und sind daher in iServ auch nich mehr zu erreichen. Dennoch wollen wir die Eltern aber weiter über Elternbreife erreichen (um über Schulfeste, Busausfälle, Abschlussfeiern und dergleichen zu informieren). Ich habe den Code also wie folgt angepasst:
Code: Alles auswählen
Select * From
(select s.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 Geloescht <> '+' and e.Vorname1 <> '' and e.Name1 <> '' and s.Status=2 and ErzAnschreiben = '+')
Union All
(select s.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 Geloescht <> '+' and e.Vorname2 <> '' and e.Name2 <> '' and s.Status=2 and ErzAnschreiben = '+')
Order By s.ID
Aber nun werden mir die volljährigen SuS als ihre eigenen Eltern exportiert, was beim iServ-Import der ELtern nicht hilfreich ist.
Kann ich SchILD weiter überzeugen, mir auch die Eltern volljähriger SuS zu exportieren?