AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfassen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfassen

Ein Thema von Pfoto · begonnen am 15. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#1

SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfassen

  Alt 15. Okt 2005, 16:52
Datenbank: Absolute Database • Version: 7.1 • Zugriff über: Local ADS
Hallo zusammen,

ich versuche seit ein paar Tagen herauszufinden, ob es in SQL die Möglichkeit gibt, den Inhalt bestimmter Zeilen zu einer Zeile zusammenzufassen.

Hier mal genauer:


So sieht quasi mein Query-Result aus:

Stichwort | BildID
===================
Stichwort1 | Bild 1
Stichwort2 | Bild 1
Stichwort3 | Bild 1
Stichwort2 | Bild 2
Stichwort4 | Bild 2

In dem Beispiel zeigt die Query, welches Bild welche Stichwörter zugewiesen bekommen hat. Soweit so gut. Aber wenn ich diese Stichwöter nun möglichst schnell anzeigen lassen will, müsste ich jede Zeile durchgehen und herausfinden, welches Stichwort zu welchem Bild gehört.

Mit GROUP oder DISTINCT kann ich zwar doppelte Einträge herausnehmen, aber ich suche eine Möglichkeit, automatisch den Inhalt der Spalte "Stichwort" in die per GROUP oder DISTINCT reduzierte Zeile einzulesen (separiert dann z.B. durch ein Komma)

Also etwa so:
SELECT *, GesuchteFunktion(Stichwort) FROM Query GROUP BY BildID

Ergebnis sollte dann so aussehen:

Stichwort | BildID
===================
Stichwort1, Stichwort2, Stichwort3 | Bild 1
Stichwort2, Stichwort4 | Bild 2


Gibt es eine solche Funktion im ADS? Leider finde ich nichts in der Hilfe, auch weil ich nicht richtig weiß, unter welchem Oberbegriff ich das Ganze suchen soll.


Wäre toll, wenn jemand eine solche Funktion kennt (oder natürlich eine andere Möglichkeit)

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 16. Okt 2005, 00:46
Hallo,

dass was du vorhast möchte ich auch schon lange haben.

In SQL gibt es keinen Befehl, der sowas kann.
Ich kenne Absolute Database nicht, ich arbeite mit MSSQL2000. Dort kann man endlich benutzdefinierte Funktionen schreiben, die wie du das möchtest in einem SQL-Statement eingebaut werden können und die dann für jede Zeile aufgerufen werden.
Wenn ich sowas mache, dann möchte ich natürlich eine ordentlich Lösung haben. Eine zufriedenstellende Möglichkeit währe allerdings nur dann vorhanden, wenn man das SQL-Statement, dass den Inhalt der Ergebniszeile liefert, als Parameter übergeben könnte. Da liegt dann leider auch das Problem bei MSSQL, in benutzerdefinierten Funktionen gibt es nämlich keine temporären Tabellen. Deshalb gibt es aus meiner Sicht bis jetzt (bei MSSQL) nur die Möglichkeit, immer eine spezielle Funktionen zuschreiben, bei der das SQL-Statement fest ist.

Also, ich lasse mich sehr gern eines besseren belehren. Aber ich bin der Meinung, das es leider nicht geht, was du da vorhast.

MfG
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 16. Okt 2005, 12:53
Das dürfte nur mit einer DB-Function (ähnlich wie eine SP) gehen, die dir das gesammelte Ergebnis zurück gibt. Habe ich auch schon gemacht. Allerdings muss die DB das unterstützen.
Peter
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 16. Okt 2005, 13:55
Hallo Pfoto,

der SQL Standard sieht eine solche Funktion nicht vor. MySQL bietet dir zu diesem Zweck die Aggregat-Funktion GROUP_CONCAT an. ADS zielt ohne SP und UDF wohl mehr auf Kunden, die einen Ersatz für die BDE suchen. Wenn Denormalisierung eine wichtige Anforderung von dir ist, dann musst du dich bei NF2-Datenbanken umschauen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#5

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 17. Okt 2005, 12:47
Zitat von marabu:
ADS zielt ohne SP und UDF wohl mehr auf Kunden, die einen Ersatz für die BDE suchen.
Was heisst hier ohne SP? Die SP bei ADS (Advantage Extended Procedures - AEP genannt) sind sogar noch weit mächtiger, da Du sie auch in Delphi programmieren kannst.

Aber wie schon geschrieben: In ANSI-SQL ist dafür nichts vorgesehen, aber mit einem SQL Script ist das ganze recht einfach lösbar.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 17. Okt 2005, 13:05
Zitat von joachimd:
Zitat von marabu:
ADS zielt ohne SP und UDF wohl mehr auf Kunden, die einen Ersatz für die BDE suchen.
Was heisst hier ohne SP? Die SP bei ADS (Advantage Extended Procedures - AEP genannt) sind sogar noch weit mächtiger, da Du sie auch in Delphi programmieren kannst.

Aber wie schon geschrieben: In ANSI-SQL ist dafür nichts vorgesehen, aber mit einem SQL Script ist das ganze recht einfach lösbar.
Er meint aber nicht den Advantage Database Server mit ADS sondern Absolute Database
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#7

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 17. Okt 2005, 13:09
Zitat von Union:
Er meint aber nicht den Advantage Database Server mit ADS sondern Absolute Database
Nö. Er meint schon ADS - ich habe diese Anfrage heute per mail ans Supportpostfach bekommen
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: SQL-ADS : Ergebnis mehrerer Zeilen in 1 Zeile zusammenfa

  Alt 17. Okt 2005, 18:06
Missverständnisse über Missverständnisse...

Zitat von joachimd:
Nö. Er meint schon ADS - ich habe diese Anfrage heute per mail ans Supportpostfach bekommen ;)
ich meinte Absolute Database - passend zur Angabe "Datenbank: Absolute Database" im Eröffnungsbeitrag - und habe fälschlicherweise "Server" ergänzt und das Akronym ADS gebildet. Man möge mir verzeihen, wenn ich damit die Namensrechte für den "Advantage Database Server" verletzt habe. Ich wollte dieses Produkt gewiss nicht diffamieren.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 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