Abfrage

Hallo,

gibt es die Möglichkeit beim auslesen der Daten Texte aus verschiedenen Zellen zusammenzuführen.

Bsp. Syntax
select REFERENZ, LANGTEXT, TEXT
from notiz

Wenn ich in meinem Programm Notizen eingebe, wird jede Notiz in einer neuen Zeile erfasst. Wenn ich nun bei einer Abfrage zu einem Kunden mehrere Notizen habe, wir jede Notiz in einer extra Zeile mit Referenz, Langtext und Text ausgegeben. Also bei 3 Notizen 3 Zeilen.

Gibt es die Möglichkeit, alle Notizen zu einer Referenznr. als ein Text zusammengefasst auszugeben? Wenn ja, wie muß meine Syntax geändert werden.

Gruß Reinhold

Hallo Reinhold,

wie schon in deiner letzten Anfrage lautet hier die Rückfrage welche SQL-Datenbank benutzt du (MySQL, Oracle, Sybase, Postgres, …).

Gruß Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Uwe,

es handelt sich um eine Mysql Datenbank. Die Daten werden mit SQL ausgelesen und als DBF-Datei abgespeichert. Anschließend in Excel weiterbearbeitet.

Gruß Reinhold

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhold,

select REFERENZ, LANGTEXT, GROUP_CONCAT(TEXT SEPARATOR " ")
from notiz
GROUP BY REFERENZ, LANGTEXT;

(zumindest lt. Handbuch ab Version 4.1)

wenn du nur nach REFERENZ gruppieren willst mußt du das Statement entsprechend anpassen.

Gruß
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Uwe Rexroth,

SQL meldet „Separator Token unknown“ und weiter unten bei meinem Datumsproblem „Date_Format Function unknown“. Ich habe mich nochmals wegen der SQL Version schlau gemacht und man sagte mir ich müsste den Ansi-SQL Code verwenden. Als Anfänger kenne ich die Unterschiede nicht, aber vieleicht kommen daher die Fehlermeldungen. Muß ich da den Code vieleicht etwas anders schreiben?

Gruß Reinhold

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhold,

kann es sein, dass du eine ältere Version von MySQL benutzt?

Ich selbst bin kein MySQL-Experte, aber ich kann mir nicht vorstellen, dass die Handbücher so schlecht sind.

Vielleicht schaust du dir mal die entsprechenden Passagen in den Handbüchern nach.
Das aktuellere Handbuch kenne ich nur auf Englisch:

als Unterschiede bei der Ansi-Option habe ich folgende Erläuterung gefunden:
2.7.2 MySQL im ANSI-Modus laufen lassen

Wenn Sie mysqld mit der --ansi-Option starten, ändert sich folgendes Verhalten von MySQL:

|| ist Zeichenketten-Verkettung (Konkatenation) anstelle von OR.
Sie können eine beliebige Anzahl von Leerzeichen zwischen Funktionnamen und (' eingeben. Das führt zwangsläufig dazu, dass alle Funktionsnamen als reservierte Wörter behandelt werden. "’ ist dann ein Quotierungsbezeichner (wie das MySQL- ``’-Anführungszeichen) und kein Zeichen, dass einen String einschließt.
REAL wird zu einem Synonym für FLOAT anstelle eines Synonyms für DOUBLE.
Der Standard-Isolationslevel für Transaktionen ist SERIALIZABLE. See section 7.7.3 SET TRANSACTION-Syntax.
Das ist dasselbe, als würde man --sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,SERIALIZE,ONLY_FULL_GROUP_BY benutzen.

Sollte ich dir damit nicht geholfen haben - Sorry.

Gruss
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Uwe,

danke für Deine Hilfe. Werde mich mal mit dem Handbuch beschäftigen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]