Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi select statement (https://www.delphipraxis.net/135660-select-statement.html)

jangbu 15. Jun 2009 16:00

Datenbank: SQL-Server • Version: 2000 • Zugriff über: BDE

select statement
 
Hallo,

suche für folgendes Problem ein passendes sql-statement:

Tabellenfelder:
Feld-1(Rezept) Feld-2(Element) Feld-3(Wert)

Werte:
Rezept-A Si 0,1
Rezept-A Fe 0,2
Rezept-A Cu 0,3
Rezept-B Si 1,0
Rezept-B Fe 2,0
Rezept-B Cu 3,0

usw.

Ich brauche die Werte aber nicht in mehreren records/Zeilen sondern in einem/r Zeile. Die Query:

select * from Tabelle
order Rezept,Element

bringt mich also nicht weiter. Kenne mich mit subselects bzw. union nicht aus. Damit müsste, glaube ich, sowas gehen?

jangbu

quendolineDD 15. Jun 2009 16:07

Re: select statement
 
Einfach zwischen deine SQL-Abfragen ein Union setzen :-)

DeddyH 15. Jun 2009 16:41

Re: select statement
 
Sicher? Ich hab das ganz anders verstanden, aber sehe den Sinn darin noch nicht.

quendolineDD 15. Jun 2009 16:46

Re: select statement
 
Den Sinn dahinter habe ich auch nicht verstanden, aber er wollte doch die Ergebnisse mehrerer selects in einer Zeile haben, also rate ich zu union.

DeddyH 15. Jun 2009 16:51

Re: select statement
 
Eine Union ist aber was Anderes.

quendolineDD 15. Jun 2009 16:55

Re: select statement
 
Zitat:

Zitat von DeddyH
Eine Union ist aber was Anderes.

Oh Gott :wall: Stimmt. Peinlich.

shmia 15. Jun 2009 17:01

Re: select statement
 
Zitat:

Zitat von quendolineDD
...aber er wollte doch die Ergebnisse mehrerer selects in einer Zeile haben, also rate ich zu union.

Mit Union verbindet man zwei (oder mehr) Datasets aber vertikal; es werden also mehr Zeilen, nicht mehr Spalten.
Man müsste jetzt auch noch wissen, warum der Threadersteller die Felder horizontal vermehren möchte.
Mit einem Reportgenerator kann man z.B. recht einfach mehrspaltig drucken.

http://www.itrain.de/knowhow/sql/tsql/pivot/pivot.asp

jangbu 15. Jun 2009 20:57

Re: select statement
 
Ich muss in einer DBLookupComboBox die Datensätze in der DropDown-Liste anzeigen. Dazu baue ich über "select join" die Daten so zusammen, dass ich sie alle im ListField zusammengefasst anzuzeigen kann. Die besagte Analysenwerte jedoch recordweise vorliegen, muss ich sie zuvor so zusammenstellen, dass ich sie als "einen" record darstellen kann, also in einer Zeile. Das mit UNION klingt gut, kenne mich blos nicht so gut aus. Wie müste denn das select statement aussehen?

jangbu

mkinzler 15. Jun 2009 21:16

Re: select statement
 
Deine Aussage ist etwas missverständlich. Bruachst du die Werte nun als Spalten ( ein Record) oder als Zeilen ( einer Spalte)?

omata 15. Jun 2009 21:22

Re: select statement
 
Ja das ist alles sehr unverständlich, zeigt doch mal (genau) wie deine Daten in der Datenbank abgelegt sind.
Und dann zeige uns was du (genau) wie haben möchtest.

Hier mal ein Vorschlag... (wenn das überhaupt mit deinen Informationen möglich ist)
SQL-Code:
EXECUTE('
DECLARE @value VARCHAR(10)
DECLARE @result VARCHAR(1000)

DECLARE c CURSOR FOR
SELECT feld1
FROM rezept

SET @result = ''''
OPEN c
FETCH c INTO @value
WHILE @@fetch_status = 0 BEGIN
  IF @result <> '''' BEGIN
    SET @result = @result + '', ''
  END
  SET @result = @result + @value
  FETCH c INTO @value
END
CLOSE c

DEALLOCATE c

SELECT 1 sort, @result AS result
UNION
SELECT 2 sort, feld1
FROM rezept
ORDER BY sort
')


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Seite 1 von 2  1 2      

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