Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi select mehrere Datensätze (https://www.delphipraxis.net/134304-select-mehrere-datensaetze.html)

jangbu 19. Mai 2009 16:18

Datenbank: SQL-Server 2000 • Zugriff über: ODBC

select mehrere Datensätze
 
Hallo,

bin dabei mit dem Query-Analyser eine Abfrage zu erstellen und habe dabei folgendes Problem. Bestelltabelle besteht u.a. aus Spalte Bestellnr und Position. (Das Schema kann ich nicht ändern ist nicht von mir). Ich suche nun alle Positionen zu einer Bestellung. Das Ergebnis der Abfrage (im Query-Analyser) möchte ich als csv-Datei speichern. Da eine Bestellung jedoch mehrere Positionen haben kann habe ich in diesem Fall immer nur eine Positionsspalte jedoch mehrer Datensätze.
Also wenn ich zu einer Bestellnunner drei Positionen habe sollen diese nicht als drei Datensätze (=3 Zeilen) sondern ein Datensatz (eine Zeile) mit drei Spalten z.B. Pos1,Pos2,Pos3 erscheinen. Geht glaube ich mit verschachtelten select-Abfragen.

jangbu

uwewo 19. Mai 2009 16:31

Re: select mehrere Datensätze
 
Hi,

da Du die Daten ja sowieso als CSV speichern willst, kannst Du doch die Daten beim speichern auf Deine Bedürfnisse anpassen.

Uwe

mkinzler 19. Mai 2009 17:21

Re: select mehrere Datensätze
 
Nennt man Pivot

p80286 19. Mai 2009 17:27

Re: select mehrere Datensätze
 
Hallo jangbu,

zum einen könntest Du Dir natürlich über exists und/oder if eine ganz wilde Abfrage basteln. Ich schlage Dir vor eine Funktion zu bauen, die zu einer vorgegebenen Bestellnummer alle Positionen in einem String ausgibt. Da ich die Syntax des SQL-Servers nicht kenne als pseudo-Code
SQL-Code:
 

create function (xxx number) return varchar
cursor c_cur select positionen from tab_positionen where bestnr=XXX
tsatz c_cur%ROWTYPE;
satz varchar;
for tsatz in c_cur
loop
  satz:=satz+tsatz
end loop
return satz
abgesehen von der Frage was der richtige Ausgabetyp ist, halte ich das für die einfachste Lösung.
Ist bestimmt auch noch optimierbar, aber mir geht's nur um's Prinzip

Gruß
K-H

edit: und Pivot ist noch besser!

DeddyH 19. Mai 2009 17:36

Re: select mehrere Datensätze
 
An Pivot dachte ich auch gerade.

jangbu 20. Mai 2009 06:26

Re: select mehrere Datensätze
 
nun ja,
ich wollte das eigentlich nicht in Delphi oder in Excel sondern quick and dirty direkt am SQL-Server mit select afragen.

jangu

mkinzler 20. Mai 2009 08:29

Re: select mehrere Datensätze
 
http://www.databasejournal.com/featu...-Cross-Tab.htm

jangbu 20. Mai 2009 10:05

Re: select mehrere Datensätze
 
danke!

jangbu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 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