![]() |
AW: Select-Resultat in einer Spalte anzeigen
Hast du schon mal diese Variante ausprobiert ?
Code:
CREATE OR ALTER VIEW V_ZUSATZ(
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, List(K.ZK_KLASSE,', ') as V_ZUSATZ_KLASSE, (select List(ZK_KLASSE,', ') from (select K.ZK_KLASSE from V_ZUSATZ_KLASSE K where K.ZK_ZUSATZ = Z.ID_ZUSATZ ORDER BY K.ZK_KLASSE) Z.ENUMMER, Z.Z_NOTIZ, Z.BIO, Z.GVO, Z.MARKIERT from ZUSATZ Z group by Z.ID_ZUSATZ; |
AW: Select-Resultat in einer Spalte anzeigen
Ich habe mir gerade mal die Mühe gemacht (weil es ja auch wirklich so schwer ist) und mal einen kleinen Test mit der LIST Funktion gemacht.
Grundlage dafür ist mein schon erwähntes Beispiel:
SQL-Code:
Nun ein erster simpler Test
CREATE TABLE DATA
( GRP integer NOT NULL, TXT varchar(50) NOT NULL ); commit; /* Testdaten */ INSERT INTO DATA (GRP, TXT) VALUES ( 1, 'b' ); INSERT INTO DATA (GRP, TXT) VALUES ( 1, 'c' ); INSERT INTO DATA (GRP, TXT) VALUES ( 1, 'a' ); commit;
SQL-Code:
und das Ergebnis (heureka) wie erwartet
select
d.GRP, list( d.TXT, ',' ) from ( select i.GRP, i.TXT from data i order by i.TXT ) d group by d.GRP ;
SQL-Code:
Und der SELECT liefert das ab
/* realere Testdaten */
INSERT INTO DATA (GRP, TXT) VALUES ( 2, 'Emulgator' ); INSERT INTO DATA (GRP, TXT) VALUES ( 2, 'Stabilisator' ); INSERT INTO DATA (GRP, TXT) VALUES ( 2, 'Antioxidationsmittel' ); commit;
SQL-Code:
Das Ergebnis ist überraschenderweise:
select
d.GRP, list( d.TXT, ',' ) from data d group by d.GRP ;
Ein weiterer kleiner Test mit anderen Testdaten
SQL-Code:
und wir erhalten egal mit welcher Abfrage dieses Ergebnis
/* weitere Testdaten */
INSERT INTO DATA (GRP, TXT) VALUES ( 3, 'b1' ); INSERT INTO DATA (GRP, TXT) VALUES ( 3, 'c' ); INSERT INTO DATA (GRP, TXT) VALUES ( 3, 'a' ); commit;
Damit steht nun also fest, dass die LIST Funktion die Werte selber intern einer Sortierung unterzieht, die man von aussen nicht beeinflussen kann. Und ja, von einem langjährigen Programmierer - der Anfängern gerne und teilweise (sprachlich) sehr vehement unter die Nase reibt, dass diese sich doch mal mit den Grundlagen und dem Problem an und für sich auseinander setzen sollen und sie auch bitte keinen fertigen Quellcode erwarten können - hätte ich diese Analyse eigentlich schon erwartet und vor allem kein Gejammer, warum da nicht die eigenen Feldnamen benutzt werden. |
AW: Select-Resultat in einer Spalte anzeigen
![]() |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Selbstverständlich versuche ich, SQL zu verstehen – mit mäßigem Erfolg. Daran hat auch das Studieren mehrerer SQL-Bücher nicht allzu viel geändert und meine SQL-Kenntnisse sind weiterhin nicht wirklich werktauglich. Das weiß ich und damit kann ich leben. Im Übrigen habe ich nicht gejammert, sondern festgestellt: ... 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? Da postete jemand einen Code mit der Behauptung, das funktioniere, was es nicht tat. Natürlich werden List-Resultate sortiert dargestellt, wenn die Einträge in der Quell-Tabelle bereits richtig sortiert eingegeben wurden. Das ist in der Realität aber eher selten der Fall. Diese Behauptung hat mich offenbar geärgert, ohne daß mir das sofort bewußt war, und dieser Ärger ist dann wohl mit in das Posting geflossen, über das sich die Menge nun zu echauffieren beliebt. Ich und viele andere hier machen das auch meistens so, wenn ich einem TE ein gepostetes Beispiel korrigiere: Ich verwende nicht irgendwelche frei erfundenen Bezeichner, sondern halte mich zur Erhöhung des Verständnisses, aber auch aus eigener Bequemlichkeit (ich muß das Beispiel ja nur kopieren) an das gepostete Beispiel. Natürlich verstehe ich, daß man das nicht macht, wenn man einen TE aufgrund gewisser Vorurteile nicht ausstehen kann. Für dieses Entgegenkommen bedanke ich mich herzlich :thumb: Mir fällt es zugebenermaßen schwer, die Variablen und Beispiel-Tabellen- und Spalten-Namen in mein Beispiel korrekt zu übertragen. Auch das habe ich ebenfalls bereits offen dargestellt: Ich blicke da nämlich nicht wirklich durch, deshalb frage ich ja hier nach. Was ich hier nun erleben darf, macht auf mich den starken Eindruck von Schadenfreude, und zwar von ganz bestimmten Usern, die auf so eine Gelegenheit nur gewartet zu haben scheinen. Dazu kann ich eigentlich nur eines sagen: Wenn's euch Freude macht und die Zufriedenheit erhöht, soll's mir recht sein. Moralische Vorwürfe erübrigen sich dann wohl in Zukunft, denn damit habt ihr die eigene angebliche Moral ad absurdum geführt :stupid: Wie bereits erwähnt habe ich mein "Problem" anderweitig gelöst. Es ging nur um eine Anzeige der zugeordneten Zusatzklassen. Damit ist dieses Thema für mich erledig. Im Übrigen halte ich es für korrekt und wichtig, Anfänger, die sich ein Programm "zusammengeklickt" haben und dann fragen, wie sie eine IF-Schleife mit einem Button erstellen können, auf fehlende Grundkenntnisse und die dringende Beseitigung dieses Mißstandes hinzuweisen. |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
:roll: Echt ein Kindergarten manchmal. Das Leben. |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Deine Beobachtung ergab, dass es so (wie in dem Beispiel) nicht geht. Meine Analyse ergab, dass es egal wie nicht geht. (Kontext: die LIST Funktion von Firebird) |
AW: Select-Resultat in einer Spalte anzeigen
Zitat:
Zitat:
Somit darfst du gerne wieder von deinem Sockel herabsteigen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz