Gelöst: Insert mit Select und Value (oder zweiter Abfrage)
Verfasst: Do, 17.09.2009 11:03
Hallo,
ich versuche mich gerade an einer Vereinsverwaltung (Förderverein einer Schule). Für die Betreuungsbeiträge habe ich über eine m:n Beziehung geregelt, welches KIND in welchem MONAT welchen Betrag (der ist jeweils gleich) zu zahlen hat.
Die verknüpfende Tabelle ("KinderMonateÜMI") enthält die Felder id_Kinder (Integer), id_Monat (integer), Betrag (Dezimal), bezahlt (Boolean).
id_Kinder kommt aus der Tabelle der Kinder, id_Monat aus der Monatstabelle. Automatischer Eintrag funktioniert je Kind über ein Formular, ist bei 60 Kindern je Monat aber etwas sehr müßig.
Wie müsste ein INSERT INTO aussehen, damit die verknüpfende Tabelle jeden Monat (automatisch) mit den aktuell zahlungspflichtigen Kindern UND der entsprechenden id für den Monat gefüllt wird.
insert into "KinderMonateÜMI" ("id_Kinder", "id_Monat") Values (1,3) funktioniert bei Extras > SQL... Statement ausführen
die 1 (id_Kinder) würde ich gerne über eine Abfrage füllen wie:
SELECT "ID_Kinder" FROM "Kinder" AS "Kinder" WHERE "Kündigung ÜMI zum:" IS NULL
die 3 (id_Monat) wäre mir eigentliche egal.
das Feld Betrag (also: insert into "KinderMonateÜMI" ("id_Kinder", "id_Monat" "Betrag") Values ....
hab ich erst mal aussen vor gelassen, das lässt sich anscheinend dadurch befüllen, dass ich in der Tabelle einen entsprechenden Default eingebe.
eine Kombination wie
insert into "KinderMonateÜMI" ("id_Kinder", "id_Monat") Values (SELECT "ID_Kinder" FROM "Kinder" AS "Kinder" WHERE "Kündigung ÜMI zum:" IS NULL,3)
bringt den Fehler "Single value expected"
ist hier ein Klammer falsch, geht das gar nicht oder was mache ich da sonst falsch? Hab schon div. andere Kombinationen (auch ohne Values e. versucht, aber nur Fehler.)
Eine Umgehungslösung wäre bisher nur, die id_Kinder nach Calc zu exportieren, die anderen Tabellen anzufügen und entsprechend mit den aktuellen werten zu befüllen (sind ja für alle Kinder gleich), und anschließend an "KinderMonateÜMI" anzufügen.
Erscheint mir aber dauerhaft nicht als besonders elegante Lösung.
Besten Dank für Eure Rückmeldungen schon mal!
MEcki
ich versuche mich gerade an einer Vereinsverwaltung (Förderverein einer Schule). Für die Betreuungsbeiträge habe ich über eine m:n Beziehung geregelt, welches KIND in welchem MONAT welchen Betrag (der ist jeweils gleich) zu zahlen hat.
Die verknüpfende Tabelle ("KinderMonateÜMI") enthält die Felder id_Kinder (Integer), id_Monat (integer), Betrag (Dezimal), bezahlt (Boolean).
id_Kinder kommt aus der Tabelle der Kinder, id_Monat aus der Monatstabelle. Automatischer Eintrag funktioniert je Kind über ein Formular, ist bei 60 Kindern je Monat aber etwas sehr müßig.
Wie müsste ein INSERT INTO aussehen, damit die verknüpfende Tabelle jeden Monat (automatisch) mit den aktuell zahlungspflichtigen Kindern UND der entsprechenden id für den Monat gefüllt wird.
insert into "KinderMonateÜMI" ("id_Kinder", "id_Monat") Values (1,3) funktioniert bei Extras > SQL... Statement ausführen
die 1 (id_Kinder) würde ich gerne über eine Abfrage füllen wie:
SELECT "ID_Kinder" FROM "Kinder" AS "Kinder" WHERE "Kündigung ÜMI zum:" IS NULL
die 3 (id_Monat) wäre mir eigentliche egal.
das Feld Betrag (also: insert into "KinderMonateÜMI" ("id_Kinder", "id_Monat" "Betrag") Values ....
hab ich erst mal aussen vor gelassen, das lässt sich anscheinend dadurch befüllen, dass ich in der Tabelle einen entsprechenden Default eingebe.
eine Kombination wie
insert into "KinderMonateÜMI" ("id_Kinder", "id_Monat") Values (SELECT "ID_Kinder" FROM "Kinder" AS "Kinder" WHERE "Kündigung ÜMI zum:" IS NULL,3)
bringt den Fehler "Single value expected"
ist hier ein Klammer falsch, geht das gar nicht oder was mache ich da sonst falsch? Hab schon div. andere Kombinationen (auch ohne Values e. versucht, aber nur Fehler.)
Eine Umgehungslösung wäre bisher nur, die id_Kinder nach Calc zu exportieren, die anderen Tabellen anzufügen und entsprechend mit den aktuellen werten zu befüllen (sind ja für alle Kinder gleich), und anschließend an "KinderMonateÜMI" anzufügen.
Erscheint mir aber dauerhaft nicht als besonders elegante Lösung.
Besten Dank für Eure Rückmeldungen schon mal!
MEcki