![]() |
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 |
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 |
Re: select mehrere Datensätze
Nennt man Pivot
|
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:
abgesehen von der Frage was der richtige Ausgabetyp ist, halte ich das für die einfachste Lösung.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 Ist bestimmt auch noch optimierbar, aber mir geht's nur um's Prinzip Gruß K-H edit: und Pivot ist noch besser! |
Re: select mehrere Datensätze
An
![]() |
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 |
Re: select mehrere Datensätze
|
Re: select mehrere Datensätze
danke!
jangbu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 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