AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Code:
Vermutlich kann man auch noch einen (gemeinsamen) Schlüsselwert der Listvalues reinpacken (innen) und den dann außen ins Groub by aufnehmen und ausgeben bzw. weiterverwenden.
select list (valuetxt) from (select VALUETXT from TESTGEN_VAL a order by Valuetxt) b
|
AW: Select-Resultat in einer Spalte anzeigen
Also ich habe jetzt auch an mehreren Stellen gelesen, das die Reihenfolge unbestimmt ist. Bei einem ORDER BY wäre es naheliegend, das es funktioniert, aber es wäre auch denkbar, das die Daten bei der Verarbeitung zum LIST nicht immer sequentiell abgearbeitet werden (Parallelbetrieb, Strategiewechsel etc.). Bei kleinen Tabellen dürfte das aber eher nicht der Fall sein.
Anmerkung: Man würde auch annehmen, das Daten in einem SELECT in der Reihenfolge geliefert werden, in der sie eingefügt wurden (wenn sonst keine Delete oder Update passiert ist). Darauf kann man sich aber auch nicht verlassen, weil es hier um Daten*mengen* geht, keine Daten*listen*. Allerdings bildet 'ORDER BY' eine Ordnung auf die Darstellung der Menge als Liste. |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Die Tatsache, dass es mit und ohne Order By unterschiedlich ausgegeben wird und das auch noch entsprechend der Bedeutung von Order by, deutet darauf hin, dass es entsprechend implementiert ist. Doku dazu habe ich auf die Schnelle nicht gefunden. |
AW: Select-Resultat in einer Spalte anzeigen
Da diese Funktion ja in einem GROUP BY verwendet wird, werden die Einträge wohl so genommen, wie die gerade reinkommen. Gebe ich eine nach den Einträgen sortierte Liste dort rein bekommt man auch ein sortiertes Ergebnis. Dieses kann man aber nicht direkt beeinflussen, sondern eben nur indirekt über diesen Zwischenschritt.
Darum die Aussage, dass die Sortierung unbestimmt ist. (Müsste man mal ausprobieren)
SQL-Code:
sollte dann
select list( i.txt, ',' )
from ( select d.grp, d.txt from data d order by d.txt ) i group by i.grp
Code:
ergeben
a,b,c
|
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
|
AW: Select-Resultat in einer Spalte anzeigen
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir funktioniert dieses View nicht so, daß die Einträge in der List-Spalte alphabetisch sortiert sind:
Code:
CREATE OR ALTER VIEW V_ZUSATZ1(
Z_ID, Z_NAME, Z_ALT, Z_KLASS, Z_ENUM, Z_NOTIZ, Z_BIO, Z_GVO, Z_MARK) AS select Z.ID_ZUSATZ, Z.Z_NAME, Z.ALTNAME, K.V_ZUSATZ_KLASSE, Z.ENUMMER, Z.Z_NOTIZ, Z.BIO, Z.GVO, Z.MARKIERT from ZUSATZ Z inner join (select List(ZK_KLASSE,', ') as V_ZUSATZ_KLASSE, ZK_ZUSATZ as I from (select ZK_KLASSE, ZK_ZUSATZ from V_ZUSATZ_KLASSE order by ZK_KLASSE) group by I ) K on I = Z.ID_ZUSATZ order by Z_NAME; |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Code:
SELECT a.OID, a.ICLASS,
(select List(iname) as ItemList from (select iname, iclass from ANITEM i where i.iclass = a.ICLASS order by iname)) as X FROM ANORDER a |
AW: Select-Resultat in einer Spalte anzeigen
... und jetzt weiß ich natürlich wieder ganz genau, was was ist ... ich gehe mal davon aus, daß das in meinem View nicht geht, denn sonst hätte wohl irgend einer der SQL-Spezialisten nicht immer nur seinen eigenen Code gepostet, der mit meiner Situation augenscheinlich nicht zusammenpaßt ... Oder weshalb sonst verwendet niemand die Tabellen- und Spaltennamen, die ich bereits mehrfach gepostet habe? Ich blicke da nämlich nicht wirklich durch, deshalb frage ich ja hier nach.
Ist aber auch nicht mehr wichtig, ich hab das jetzt clientseitig gelöst ... |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
|
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Du gibst hier Delphi Anfängern gern und eindringliche Ratschläge, sich mit den Grundlagen oder aber auch Besonderheiten Ihres Anliegens auseinanderzusetzen. Wie kommt es zu Deiner Lustlosigkeit, den eigenen Ratschlägen zu folgen? Weshalb niemand Deine Objektnamen verwendet? Es ist ganz einfach, ich spreche mal für mich. Meine Unterstützung hier beschränkt sich seit längerem auf den Bereich SQL, weil ich seit einigen Jahren nicht mehr mit Delphi arbeite und es mich zuviel Zeit kostet, valide Hinweise zu geben. Ich bleib also bei meinen Leisten und gebe Tipps und Hinweise zu SQL, die ich mehrheitlich allgemein halte oder auch mal mit einem konkreten Stück Code, einem Doku Link oder was auch immer versehe, um einen möglichen Nutzen für den TE zu bieten. Das ist idR eine Frage von wenigen Minuten Aufwand für mich. So auch hier, ich habe mich u.a. soweit aus dem Fenster gelehnt, Sir Rufos Präzisierung meines Vorschlags ohne Prüfung zu kommentieren, einfach weil ich mir meiner Sache ziemlich sicher war und eine echte Prüfung scheinbar nicht im richtigen Verhältnis zum Nutzen stand. Wie sich herausgestellt hat, funktionieren offenbar beide Vorschläge nicht in der Realität. Jetzt nur mal so als Zwischenergebnis: So funktioniert ein Forum doch, oder?! Ich habe dann (nachdem Du das als nicht funktionierend gemeldet hast) auf Basis eigener Tabellen, die bei mir irgendwo in FB rumfliegen, das Problem nachgestellt und Dir eine funktionierende Variante gepostet, handgetestet. Dass richtig sortiert wird, musst bzw. kannst Du glauben, auf Nachfrage hätte ich Dir auch noch so einen schicken Screenshot geliefert. Wenn ich mir die (Frei-)Zeit nehme, soetwas zu tun, kann ich nur schwer nachvollziehen, wie es zu Deinen Klagen kommt. Aber weil Du so nett gefragt hast, hier noch eine Erläuterung: aus
Code:
wird in meinem Beispiel
Select
<a.felder> <b.listenfeld> from <haupttabelle> a <Select List() from ListenQuelle .. order by ..> b* where a.joinkrit = b.joinkrit
Code:
* Das Statement ist hier symbolisch dargestellt und verkürzt, die Schachtelung ist nicht abgebildet
Select
<a.felder> <Select List() from ListenQuelle where a.joinkrit = b.joinkrit .. order by .. > b* from <haupttabelle> a Ach noch ein Tipp, wenn Du wirklich erwartest, dass ein Helfer Deine Objektnamen nutzt: Dazu ist es normalerweise (im professionellen Rahmen) üblich, ein möglichst vereinfachtes Code Beispiel zu liefern, mit dem der Fehler reproduzierbar ist. Für SQL wird das Beispiel in Form eines vollständigen, funtionierenden DML Scripts inkl. Testdaten gepostet (insert statements). Diese Daten kann man als Fragesteller idR mit ein paar Handgriffen aus seinem System quetschen und erlauben es dem Helfer innerhalb von Sekunden, das echte Problem zu bearbeiten, echte Fehlermeldungen zu sehen und möglicherweise auf echte Bugs und eigenartige Phänomene zu stoßen. (statt zu theoretisieren oder abstrahieren, geschweige denn anhand von SQL Fragmenten erstmal SQL Archäologisch tätig zu werden) Ich hoffe, wir verstehen uns. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz