Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mehrere Datensätze in einer Zeile? (https://www.delphipraxis.net/116651-mehrere-datensaetze-einer-zeile.html)

Ydobon 4. Jul 2008 15:30

Re: mehrere Datensätze in einer Zeile?
 
Limit kennt Jet-Sql nicht, da muss man es etwas umständlich mit Top simulieren. Die Sql-Anweisung könnte auch ziemlich lang werden, bei vielen Bestellungen, und wenn man wenn man weniger als die maximale Anzahl verwendet wird das Ergebis unvollständig.

In MySql wäre es mit GROUP_CONCAT äußerst einfach, leider scheint Jet so etwas nicht zu kennen. Hier wird für Access selbst eine Funktion zu diesem Zweck angegeben, jetzt müsste man sie nur noch verwenden können.

shmia 4. Jul 2008 16:59

Re: mehrere Datensätze in einer Zeile?
 
Wozu brauchst du denn die Felder auf diese Weise angeordnet?
Willst du Drucken, Daten exportieren oder dem Benutzer im Grid anzeigen?
(einfach mal querdenken!)

Man kann das Problem auch mit Delphi (ohne SQL) lösen.
Die Abfrage auf die Bestellungen bekommt ein berechnetes Feld hinzu.
Im Event OnCalcFields benötigt man dann eine 2. Abfrage auf die Artikel. (Master-Detail-Verknüpfung)
Mit einer Schleife über die Artikeldaten verkettet man die Artikelnummern zu einen String (Nummer durch Komma getrennt) und weist das dem berechneten Feld zu.
Das ist natürlich langsamer als per SQL; aber das Problem lässt sich mit der der Jet-Engine wahrscheinlich nicht lösen.

omata 4. Jul 2008 17:22

Re: mehrere Datensätze in einer Zeile?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von shmia
Man kann das Problem auch mit Delphi (ohne SQL) lösen.


Overclocker 19. Jun 2009 21:26

Re: mehrere Datensätze in einer Zeile?
 
Hi,

jetzt steh ich vor einem ähnlichen problem, allerdings nicht mehr in access, sondern auf einem sql 2005 server.

kennt von euch jemand auch hierfür eine funktion? Group_concat etc. laufen nur auf mysql was ich darüber gefunden habe aber für TSQL habe ich noch nichts gefunden :(

wäre dankbar für eure hilfe

mkinzler 19. Jun 2009 21:36

Re: mehrere Datensätze in einer Zeile?
 
Wie gesagt nennet man Pivot oder Kreuztabelle
http://www.itrain.de/knowhow/sql/tsql/pivot/index.asp

Overclocker 19. Jun 2009 21:42

Re: mehrere Datensätze in einer Zeile?
 
ja, aber was ich irgendwie rausgelesen habe, dass es eher nicht für mein vorhaben geeignet ist.
mein ziel ist, aus diesen daten

Delphi-Quellcode:
Bestellnr Artikelnr
1 580
1 581
1 582
1 583
2 585
2 586
folgendes ergebnis zu bekommen

1 580 581 582 583
2 585 586


sozusagen 2 zeilen zu erhalten mit DYNAMISCHER spaltenanzahl, je nachdem wieviele daten vorhanden sind?!?!

mkinzler 20. Jun 2009 07:21

Re: mehrere Datensätze in einer Zeile?
 
Dann musst du die Abfrage manuell zusammenfiemeln.

Overclocker 21. Jun 2009 15:00

Re: mehrere Datensätze in einer Zeile?
 
tja das wenn ich wüsste wie ich das anstellen soll ;)

dann hätte ich ja das problem nicht, hab schon alles versucht, group concat etc. gibts ja für mysql,läuft aber nich auf tsql und für tsql habe ich bis jetzt leider echt noch nichts gescheites gefunden :(((


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr.
Seite 2 von 2     12   

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