Mehrere Daten in einem Feld?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Mehrere Daten in einem Feld?

Re: Mehrere Daten in einem Feld?

von Jerome_mok » Do, 15.01.2015 13:45

Wow, das ging doch wesentlicher einfacher als gedacht...

Vielen Dank für die schnelle Antwort!!!

Re: Mehrere Daten in einem Feld?

von madmatmed » Do, 15.01.2015 13:23

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.

Code: Alles auswählen

SELECT "Kunden".*, "ältestes Datum"."Dat" AS "letzter Besuch" FROM "Kunden" LEFT OUTER JOIN "ältestes Datum" ON ( "ältestes Datum"."Suchwert" = "ID" )

Re: Mehrere Daten in einem Feld?

von Jerome_mok » Do, 15.01.2015 08:56

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
Dateianhänge
Beispiel.odb
(12.71 KiB) 97-mal heruntergeladen

Re: Mehrere Daten in einem Feld?

von RobertG » Di, 13.01.2015 19:21

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

Re: Mehrere Daten in einem Feld?

von RobertG » Di, 06.01.2015 11:55

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:

Code: Alles auswählen

SELECT MIN( "letzter Anlagenbesuch" ), "ID_ext", "Name" FROM "Termine" GROUP BY "ID_ext", "Name"
Falls das nicht Deinem Vorhaben entspricht habe ich es hier etwas komplizierter:

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"
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

Re: Mehrere Daten in einem Feld?

von RobertG » Di, 02.12.2014 13:49

Hallo Jerome,

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 
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.

Code: Alles auswählen

SELECT "ID", MIN("Datum") AS "Dat" FROM "Termine" GROUP BY "ID" WHERE DATEDIFF('mm', "Datum", CURRENT_DATE) > 12 
würde auch gehen.

Gruß

Robert

Re: Mehrere Daten in einem Feld?

von RobertG » Do, 27.11.2014 20:18

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

Nach oben