Mehrere Daten in einem Feld?
Moderator: Moderatoren
Re: Mehrere Daten in einem Feld?
Hallo Jerome,
um mehrere unterschiedliche Termine zu einem Kunden abzuspeichern brauchst Du eine zweite Tabelle "Termine". In der Tabelle "Termine" wird der Primärschlüssel aus der Tabelle "Kunden" als Fremdschlüssel mit abgespeichert. Zusammen mit dem Datum kann das dort gemeinsam der Primärschlüssel sein. Die Tabelle "Termine" muss also zwingend nur den Primärschlüssel aus "Kunden" und das Datum enthalten.
Diese Tabelle gehört dann in ein Subformular zur Tabelle "Kunden". Alle Termine zu dem Kunden siehst Du dann am besten mit Hilfe eines Tabellenkontrollfeldes.
Gruß
Robert
um mehrere unterschiedliche Termine zu einem Kunden abzuspeichern brauchst Du eine zweite Tabelle "Termine". In der Tabelle "Termine" wird der Primärschlüssel aus der Tabelle "Kunden" als Fremdschlüssel mit abgespeichert. Zusammen mit dem Datum kann das dort gemeinsam der Primärschlüssel sein. Die Tabelle "Termine" muss also zwingend nur den Primärschlüssel aus "Kunden" und das Datum enthalten.
Diese Tabelle gehört dann in ein Subformular zur Tabelle "Kunden". Alle Termine zu dem Kunden siehst Du dann am besten mit Hilfe eines Tabellenkontrollfeldes.
Gruß
Robert
Re: Mehrere Daten in einem Feld?
Hallo Jerome,
zuerst einmal natürlich: Fehlermeldungen aufmerksam lesen - wenn es nicht eine meldung ist, die Du schon auswendig kennst. Dann gegebenenfalls übersetzen.
Warum GOUP BY "ID"? Wie soll mit dem Feld "Datum" umgegangen werden. Da stehen doch mehrere Datumswerte - die Datenbank muss wissen, welchen der datumswerte sie bei einer Gruppierung nehmen soll.
ORDER BY "ID" wäre sicher erst einmal sinnvoller.
würde auch gehen.
Gruß
Robert
zuerst einmal natürlich: Fehlermeldungen aufmerksam lesen - wenn es nicht eine meldung ist, die Du schon auswendig kennst. Dann gegebenenfalls übersetzen.
Code: Alles auswählen
SELECT * FROM "Termine" GROUP BY "ID" WHERE DATEDIFF('mm', "Datum", CURRENT_DATE) > 12
ORDER BY "ID" wäre sicher erst einmal sinnvoller.
Code: Alles auswählen
SELECT "ID", MIN("Datum") AS "Dat" FROM "Termine" GROUP BY "ID" WHERE DATEDIFF('mm', "Datum", CURRENT_DATE) > 12
Gruß
Robert
Re: Mehrere Daten in einem Feld?
Hallo Jerome,
mit dem Feld "Name" hast Du ein Feld hinzugefügt, das "Not in aggregate function or group by clause" vorhanden ist. "aggregate function" ist eine Funktion, die etwas zusammensammelt, bei Dir das Minimum. Es wird das Minimum abhängig von "ID_ext" gesucht. Also jeweils für "ID_ext" das entsprechende Minimum gefunden. Jetzt ist die Frage, wie "Name" dazu passen soll. Du müsstest "Name" in die Gruppierung übernehmen, dann würde zumindest die Abfrage ablaufen - nur ob das Deinem Vorhaben entspricht kann ich hier nicht sagen:
Falls das nicht Deinem Vorhaben entspricht habe ich es hier etwas komplizierter:
Es kann sein, dass zwei Namensbezeichnungen zu einem letzten Anlagenbesuch bei gleicher ID_ext passen. Deswegen habe ich in der korrelierenden Unterabfrage MAX("Name") stehen.
Gruß
Robert
mit dem Feld "Name" hast Du ein Feld hinzugefügt, das "Not in aggregate function or group by clause" vorhanden ist. "aggregate function" ist eine Funktion, die etwas zusammensammelt, bei Dir das Minimum. Es wird das Minimum abhängig von "ID_ext" gesucht. Also jeweils für "ID_ext" das entsprechende Minimum gefunden. Jetzt ist die Frage, wie "Name" dazu passen soll. Du müsstest "Name" in die Gruppierung übernehmen, dann würde zumindest die Abfrage ablaufen - nur ob das Deinem Vorhaben entspricht kann ich hier nicht sagen:
Code: Alles auswählen
SELECT MIN( "letzter Anlagenbesuch" ), "ID_ext", "Name" FROM "Termine" GROUP BY "ID_ext", "Name"
Code: Alles auswählen
SELECT MIN( "letzter Anlagenbesuch" ) AS "Dat", "a"."ID_ext", (SELECT MAX("Name") FROM "Termine" WHERE "ID_ext" = "a"."ID_ext" AND "letzter Anlagenbesuch" = (SELECT MIN( "letzter Anlagenbesuch" ) FROM "Termine" WHERE "ID_ext" = "a"."ID_ext") ) AS "Name" FROM "Termine" AS "a" GROUP BY "ID_ext"
Gruß
Robert
Re: Mehrere Daten in einem Feld?
Hallo Jerome,
vielleicht ist es einfacher, wenn Du die datenbank einmal postetst. So steigen da wohl nur noch wenige Leute durch. Dann magelt es auch an dem willen, sich mit der Sache weiter zu beschäftigen.
Gruß
Robert
vielleicht ist es einfacher, wenn Du die datenbank einmal postetst. So steigen da wohl nur noch wenige Leute durch. Dann magelt es auch an dem willen, sich mit der Sache weiter zu beschäftigen.
Gruß
Robert
-
- Beiträge: 5
- Registriert: Do, 15.01.2015 08:52
Re: Mehrere Daten in einem Feld?
Alles klar, ich habe zu meinem Problem mal eine Testdatenbank hochgeladen...
Ziel ist es wie gesagt, dass die Abfrage "Zusammenstellung" auch die Daten aus der Tabelle "Kunden" anzeigt, die noch keinen Termin zugewiesen bekommen haben.
Hoffe das es nun verständlicher ist
LG Jerome
Ziel ist es wie gesagt, dass die Abfrage "Zusammenstellung" auch die Daten aus der Tabelle "Kunden" anzeigt, die noch keinen Termin zugewiesen bekommen haben.
Hoffe das es nun verständlicher ist

LG Jerome
- Dateianhänge
-
- Beispiel.odb
- (12.71 KiB) 96-mal heruntergeladen
Re: Mehrere Daten in einem Feld?
Hallöchen,
bin mir nicht ganz sicher, weil ich es gerade nicht schaffe den ganzen Gedankengängen zu folgen, die schon in diesem Post waren, aber ich glaube dein Problem löst sich, wenn du ein LEFT OUTER JOIN verwnedest.
bin mir nicht ganz sicher, weil ich es gerade nicht schaffe den ganzen Gedankengängen zu folgen, die schon in diesem Post waren, aber ich glaube dein Problem löst sich, wenn du ein LEFT OUTER JOIN verwnedest.
Code: Alles auswählen
SELECT "Kunden".*, "ältestes Datum"."Dat" AS "letzter Besuch" FROM "Kunden" LEFT OUTER JOIN "ältestes Datum" ON ( "ältestes Datum"."Suchwert" = "ID" )
-
- Beiträge: 5
- Registriert: Do, 15.01.2015 08:52
Re: Mehrere Daten in einem Feld?
Wow, das ging doch wesentlicher einfacher als gedacht...
Vielen Dank für die schnelle Antwort!!!
Vielen Dank für die schnelle Antwort!!!