AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi select mehrere Datensätze
Thema durchsuchen
Ansicht
Themen-Optionen

select mehrere Datensätze

Ein Thema von jangbu · begonnen am 19. Mai 2009 · letzter Beitrag vom 20. Mai 2009
Antwort Antwort
jangbu

Registriert seit: 6. Apr 2006
171 Beiträge
 
Delphi 10.3 Rio
 
#1

select mehrere Datensätze

  Alt 19. Mai 2009, 17:18
Datenbank: SQL-Server 2000 • Zugriff über: ODBC
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
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#2

Re: select mehrere Datensätze

  Alt 19. Mai 2009, 17:31
Hi,

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

Uwe
Uwe
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: select mehrere Datensätze

  Alt 19. Mai 2009, 18:21
Nennt man Pivot
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: select mehrere Datensätze

  Alt 19. Mai 2009, 18:27
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!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: select mehrere Datensätze

  Alt 19. Mai 2009, 18:36
An Pivot dachte ich auch gerade.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jangbu

Registriert seit: 6. Apr 2006
171 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: select mehrere Datensätze

  Alt 20. Mai 2009, 07:26
nun ja,
ich wollte das eigentlich nicht in Delphi oder in Excel sondern quick and dirty direkt am SQL-Server mit select afragen.

jangu
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: select mehrere Datensätze

  Alt 20. Mai 2009, 09:29
http://www.databasejournal.com/featu...-Cross-Tab.htm
Markus Kinzler
  Mit Zitat antworten Zitat
jangbu

Registriert seit: 6. Apr 2006
171 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: select mehrere Datensätze

  Alt 20. Mai 2009, 11:05
danke!

jangbu
  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 13:48 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