von Der_Paul » Di, 01.03.2016 13:42
Hallo Robert,
es klappt noch nicht ganz. Bei der Abfrage von dir wirft er mir ein fröhliches:
SQL-Status: S0022
Fehler-Code: -28
Column not found: Konto.Kontakt1_ID in statement [SELECT "a"."Betrag", "Kontakte"."Name", "a"."Buchungstag", "a"."Verwendungszweck", "a"."Termine_ID", ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ) "Summe", "Termine"."Kosten" - IFNULL( ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ), 0 ) "Rest" FROM "Konto" AS "a", "Kontakte", "Termine" WHERE "Konto"."Kontakt1_ID" = "Kontakte"."ID" AND "Konto"."Termine_ID" = 7 AND "Termine"."ID" = "Konto"."Termine_ID" ORDER BY "Kontakte"."Name" ASC]
entgegen.
Wenn ich "Konto"."Kontakte1_ID" ändere in "a"."Kontakte1_ID" kommt die gleiche Fehlermeldung wie oben nur mit "Konto"."Termine_ID". Also ändere ich "Konto"."Termine_ID" zweimal in "Konto"."Termine_ID".
Der Code der Abfrage sieht dann jetzt so aus:
Code: Alles auswählen
SELECT "a"."Betrag", "Kontakte"."Name", "a"."Buchungstag", "a"."Verwendungszweck", "a"."Termine_ID",
(SELECT SUM ("Betrag") FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID") AS "Summe",
"Termine"."Kosten" - IFNULL((SELECT SUM ("Betrag") FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID"),0) AS "Rest"
FROM "Konto" AS "a", "Kontakte", "Termine"
WHERE "a"."Kontakt1_ID" = "Kontakte"."ID" AND "a"."Termine_ID" = 7 AND "Termine"."ID" = "a"."Termine_ID"
ORDER BY "Kontakte"."Name" ASC
Und SQL meldet:
Die Dateninhalte konnten nicht geladen werden.
Set Function on non-numeric data is not allowed in statement [SELECT "a"."Betrag", "Kontakte"."Name", "a"."Buchungstag", "a"."Verwendungszweck", "a"."Termine_ID", ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ) "Summe", "Termine"."Kosten" - IFNULL( ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ), 0 ) "Rest" FROM "Konto" AS "a", "Kontakte", "Termine" WHERE "a"."Kontakt1_ID" = "Kontakte"."ID" AND "a"."Termine_ID" = 7 AND "Termine"."ID" = "a"."Termine_ID" ORDER BY "Kontakte"."Name" ASC]
Ah! Ich Held der Arbeit. Beim Import der Daten aus dem CSV der Bank habe ich das Feld "Betrag" als VAR (Char) angelegt. Warum auch immer. So kann das ja auch nicht funktionieren.
Feld in Integer gewandelt und schon läuft die Abfrage von dir Robert.

Hallo Robert,
es klappt noch nicht ganz. Bei der Abfrage von dir wirft er mir ein fröhliches:
[quote]SQL-Status: S0022
Fehler-Code: -28
Column not found: Konto.Kontakt1_ID in statement [SELECT "a"."Betrag", "Kontakte"."Name", "a"."Buchungstag", "a"."Verwendungszweck", "a"."Termine_ID", ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ) "Summe", "Termine"."Kosten" - IFNULL( ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ), 0 ) "Rest" FROM "Konto" AS "a", "Kontakte", "Termine" WHERE "Konto"."Kontakt1_ID" = "Kontakte"."ID" AND "Konto"."Termine_ID" = 7 AND "Termine"."ID" = "Konto"."Termine_ID" ORDER BY "Kontakte"."Name" ASC][/quote]
entgegen.
Wenn ich "Konto"."Kontakte1_ID" ändere in "a"."Kontakte1_ID" kommt die gleiche Fehlermeldung wie oben nur mit "Konto"."Termine_ID". Also ändere ich "Konto"."Termine_ID" zweimal in "Konto"."Termine_ID".
Der Code der Abfrage sieht dann jetzt so aus:
[code]SELECT "a"."Betrag", "Kontakte"."Name", "a"."Buchungstag", "a"."Verwendungszweck", "a"."Termine_ID",
(SELECT SUM ("Betrag") FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID") AS "Summe",
"Termine"."Kosten" - IFNULL((SELECT SUM ("Betrag") FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID"),0) AS "Rest"
FROM "Konto" AS "a", "Kontakte", "Termine"
WHERE "a"."Kontakt1_ID" = "Kontakte"."ID" AND "a"."Termine_ID" = 7 AND "Termine"."ID" = "a"."Termine_ID"
ORDER BY "Kontakte"."Name" ASC[/code]
Und SQL meldet:
[quote]Die Dateninhalte konnten nicht geladen werden.
Set Function on non-numeric data is not allowed in statement [SELECT "a"."Betrag", "Kontakte"."Name", "a"."Buchungstag", "a"."Verwendungszweck", "a"."Termine_ID", ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ) "Summe", "Termine"."Kosten" - IFNULL( ( SELECT SUM( "Betrag" ) FROM "Konto" WHERE "Termine_ID" = 7 AND "Kontakt1_ID" = "a"."Kontakt1_ID" ), 0 ) "Rest" FROM "Konto" AS "a", "Kontakte", "Termine" WHERE "a"."Kontakt1_ID" = "Kontakte"."ID" AND "a"."Termine_ID" = 7 AND "Termine"."ID" = "a"."Termine_ID" ORDER BY "Kontakte"."Name" ASC][/quote]
Ah! Ich Held der Arbeit. Beim Import der Daten aus dem CSV der Bank habe ich das Feld "Betrag" als VAR (Char) angelegt. Warum auch immer. So kann das ja auch nicht funktionieren.
Feld in Integer gewandelt und schon läuft die Abfrage von dir Robert. :)