![]() |
Datenbank: MYSQL • Zugriff über: ODBC
Datensätze zusammenfassen
Hallo Leute,
ich habe folgendes Problem und zwar habe ich folgendes Ergebnis nach einer SQL-Abfrage: Vorgangsnr | Auftragsnr | Wert 123123123 | 09-0854 | abc 123123123 | 09-0854 | abc1 123123123 | 09-0854 | abc2 546456456 | 09-0899 | abc 546456456 | 09-0899 | abc1 546456456 | 09-0899 | abc2 Dies lasse ich in ein ListView ausgeben, nur sieht das nicht so schön aus, ich würde es gern so ausgeben lassen: Vorgangsnr | Auftragsnr | Wert 123123123 | 09-0854 | abc, abc1, abc2 546456456 | 09-0899 | abc, abc1, abc2 Ist dies mit irgendeiner SQL-Anweisung möglich Daten so zusammen zufassen? Danke |
Re: Datensätze zusammenfassen
hi,
kannst du den jetzigen SQL einmal zeigen? Grüße Ansgar |
Re: Datensätze zusammenfassen
SQL-Code:
Sry, war Schwachsinn... *dumdidum*
GROUP BY vorgangsnr, wert
|
Re: Datensätze zusammenfassen
Naja, mit der jetzigen SQL-Anweisung könnt ihr wahrscheinlich nicht viel anfangen:
SQL-Code:
Wenn ich "ORDER BY" durch "GROUP BY vorgangsnr, wert" ersetze bekomme ich die Meldung: Ambiguous column reference
SELECT * FROM AB_AUFLAGE AB, VM_VORGANG V,KP_ECKTERMINE ECK,KP_AUFTRAG AUF,KL_KOSTENSTELLEN K,KL_MENUBEREICHE MEN,KP_GEPLANTEZEIT GEP,A_EXTNR EXT,VM_VARIABLEN VAR WHERE ECK.ECKTERMINTYP=3 AND ECK.ECKTERMIN BETWEEN 39971 AND 40000 AND V.VORGANGSNR=AB.VORGANGSNR AND V.VORGANGSNR=ECK.VORGANGSNR AND V.LI_FERTIG IS NULL AND ECK.VORGANGSNR=V.VORGANGSNR AND AUF.VORGANGSNR=ECK.VORGANGSNR AND AUF.STATUS < 2 AND ADR_INTNR=KUNDE_INTNR AND ADR_TYP=1 AND GEP.VORGANGSNR=ECK.VORGANGSNR AND K.KST_NR=GEP.KST_NR AND MEN.ECKTERMINTYP=ECK.ECKTERMINTYP AND K.MENBERNR=MEN.MENBERNR AND ADR_INTNR=KUNDE_INTNR AND VAR.VORGANGSNR (+) = V.VORGANGSNR AND VAR.VARNR (+) = 211 ORDER BY K.KST_KURZ
|
Re: Datensätze zusammenfassen
SQL-Code:
select
Vorgangsnr, Auftragsnr, GROUP_CONCAT( Wert) where ... group by Vorgangsnr, Auftragsnr; |
Re: Datensätze zusammenfassen
Zitat:
wäre es von Vorteil wenn du ihn auch ordentlich formatierst ... z.B. so ...
SQL-Code:
Ohne deine Tabellen zu kennen bin ich der Meinung dass deine Ergebnismenge, die aus dem Statement hervorgeht, größer ist als du sie überhaupt benötigst ... zumindest nach der Aussage, dass du nur die Vorgangsnummer, Auftragsnummer und den irgendeinen Wert brauchst ...
SELECT *
FROM AB_AUFLAGE AB, VM_VORGANG V,KP_ECKTERMINE ECK,KP_AUFTRAG AUF, KL_KOSTENSTELLEN K,KL_MENUBEREICHE MEN,KP_GEPLANTEZEIT GEP,A_EXTNR EXT, VM_VARIABLEN VAR WHERE (ECK.ECKTERMINTYP = 3) AND (ECK.ECKTERMIN BETWEEN 39971 AND 40000) AND (V.VORGANGSNR = AB.VORGANGSNR) AND (V.VORGANGSNR = ECK.VORGANGSNR) AND (V.LI_FERTIG IS NULL) AND (ECK.VORGANGSNR = V.VORGANGSNR) AND (AUF.VORGANGSNR = ECK.VORGANGSNR) AND (AUF.STATUS < 2) AND (ADR_INTNR = KUNDE_INTNR) AND (ADR_TYP = 1) AND (GEP.VORGANGSNR = ECK.VORGANGSNR) AND (K.KST_NR = GEP.KST_NR) AND (MEN.ECKTERMINTYP = ECK.ECKTERMINTYP) AND (K.MENBERNR = MEN.MENBERNR) AND (ADR_INTNR = KUNDE_INTNR) AND (VAR.VORGANGSNR (+) = V.VORGANGSNR) AND (VAR.VARNR (+) = 211) ORDER BY K.KST_KURZ Bei deinem Statement holst du dir alle Datensätze und jedes FELD aus jeder im FROM angegebenen Tabelle. Benötigst für die Ausgabe und Überprüfung aber sicherlich nicht alle ... Ob deine Abfrage noch sonderlich performant ist wenn in jeder Tabelle sich mal ein paar huntertausend Datensätze angesammelt haben wage ich zu bezweifeln. Alles weitere können dir bestimmt andere erklären ;) |
Re: Datensätze zusammenfassen
Zitat:
|
Re: Datensätze zusammenfassen
MySQL. In FireBird heisst sie LIST(). Ob noch andere DBMS diese unterstützen weiss ich leider nicht.
|
Re: Datensätze zusammenfassen
Zitat:
|
Re: Datensätze zusammenfassen
Hallo,
f4k3: deine Worte habe ich mir natürlich zu Herzen genommen, hatte mir nur immer die gesamte Ergebnismenge anzeigen lassen, um zu sehen welche Daten vorhanden sind. mkinzler: Hatte mich schon so gefreut als ich deine Lösung gesehen hatte, nur leider wird group_concat nicht/noch nicht unterstützt. Ich werde es jetzt doch versuchen irgendwie in Delphi zulösen...Danke trotzdem für eure Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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 by Thomas Breitkreuz