![]() |
Datenbank: Paradox • Zugriff über: SQL
Felder eines Datensatzes in Query zu einzelnen Datensätzen
Hallo alle... :-D
ich habe eine Tabelle z.B. mit Feld1, Feld2, Feld3. ist es mit Query möglich jedes Feld als einzelnen Datensatz in einem Feldx als Ergebnis zu erhalten ? :gruebel: Ich hoffe auf eine Lösung... Für Eure Hilfe Danke im Voraus... Hintergrund: ich muß die einzelnen Felder nacheinander im Report darstellen in einem Band, da aber die Feldwerte unterschiedlich sind kann ich es nicht statisch lösen. Desweiteren wird in Abhängigkeit des Feldwertes das Band gedruckt oder nicht. |
Re: Felder eines Datensatzes in Query zu einzelnen Datensätz
Guten Morgen,
LocalSQL bietet leider keine komfortablen Sprachmittel zur Spalten-Zeilen-Transposition. Für eine überschaubare Menge an Feldern kannst du aber mit UNION nachhelfen:
SQL-Code:
Grüße vom marabu
SELECT id, feld1 FROM tabelle WHERE id = :id
UNION SELECT id, feld2 FROM tabelle WHERE id = :id |
Re: Felder eines Datensatzes in Query zu einzelnen Datensätz
Guten Morgen... :roll:
Danke für die Richtung... :-D werde mich mit Union eingehend beschäftigen. Ich melde mich dann wieder :hi: |
Re: Felder eines Datensatzes in Query zu einzelnen Datensätz
Hallo...
mit UNION wäre es der Weg, wenn ich mich nicht verkehrt ausgedrückt hätte :wall: ich benötige nicht den Feldinhalt als Ergebnis sondern den Feldnamen. Beispiel: Tabelle vorhanden: SpalteA SpalteB SpalteC TextA True True TextB False True TextC True False Datensatzzeiger steht z.B. auf Datensatz 1, Abfage welche Spalte True enthält. das Ergebnis sollte so aussehen: SpalteX SpalteB SpalteC bei Datensatz 2 so: SpalteX SpalteC das ist natürlich etwas völlig anderes...sorry :oops: Vieleicht gibt es eine simple Lösung. Ich werde aber das Gefühl nicht los Umwege zu gehen... :( |
Re: Felder eines Datensatzes in Query zu einzelnen Datensätz
Ich wüsste da keine Möglichkeit, das in SQL abzubilden. Vielleicht kannst du die Anforderung, die dahinter steht, etwas weiter ausleuchten, dann kann man sich eventuell die ein oder andere Alternative überlegen.
|
Re: Felder eines Datensatzes in Query zu einzelnen Datensätz
Danke für die schnelle Reaktion... :-D
Der Hintergrund: in der Tabelle werden Grundeinstellungen gespeichert. SpalteA enthält die Typenbezeichnung der Anlage. Die weiteren Spalten entsprechen den Komponenten. der Spalteninhalt ist True oder False. Je nach Typbezeichnung sind Komponenten vorhanden oder nicht. Diese Tabelle benutze ich u.a. für das ein- bzw. ausblenden von Registerkarten. zu jeder Komponente existiert eine weitere Tabelle mit je nach Komponente unterschiedlichen Feldern. Jetzt möchte ich mit FreeReport die einzelnen Spalten / Daten darstellen. (Wechsel von QuickReport) Der Report sollte etwa so aussehen: 1. Anlagentyp auswählen --> Datensatzeiger setzen in Tabelle Grundeinstellungen 2. Abfrage... Komponente vorhanden -- > Ergebnis Tabelle mit den vorhandenen Komponenten (Feldnamen) 3. Abfrage... Tabellen der Komponenten ( Felder, Daten ) Überschrift - Typbezeichnung (Tabelle Grundeinstellungen) Feldname1 in TabelleKomponente---Feldname2 in TabelleKomponente---Feldname3 in TabelleKomponente ... Daten Feld1----------------------Daten Feld2----------------------Daten Feld3 in der Query müssen dann alle Daten der Tabellen vorhanden sein. Über Master/Detail (Gruppierung ) läßt sich das dann leicht darstellen. Oder...vor jedem Print des Bandes neue Query mit der nächsten Tabelle für die Daten. Grundlage für den Report wäre aber eine Tabelle mit der Menge der vorhandenen Komponenten... Fazit: mit Quickreport war es ungleich einfacher Eigenschaften zuzuordnen oder den Bericht von extern zu steuern. ( Lernphase FreeReport :roll: ) Deshalb habe ich nach einer Möglichkeit über Query gesucht um die Daten zusammenzufassen. Der Ausschlaggebende Punkt zu wechseln war die Möglichkeit mehrere Seiten zu definieren und jeder Seite eigene Eigenschaften zuzuordnen ( z.B. Ausrichtung ). Kein einfacher Weg... :( aber kriege ich irgendwie ! Ich hoffe, mich verständlich ausgedrückt zu haben. Viel Spaß beim Nachdenken... :-D Viele Wege führen nach Rom...mir raucht schon der Kopf. :hi: |
Re: Felder eines Datensatzes in Query zu einzelnen Datensätz
Hallo alle miteinander...
ich habe das jetzt über Umwege gelöst... 1. dynamisch eine Tabelle erzeugt 2. Datensatz mit den Komponenten mit Schleife durchlaufen und in der neuen Tabelle die Feldnamen als einzelne Datensätze abgelegt. Jetzt habe ich eine Datenmenge als Grundlage für den Report. 3. im BeforePrint des Bandes hole ich mir dann über eine Query die passenden Daten.
Delphi-Quellcode:
procedure TempTable1;
var Tabelle: TTable; begin Form1.TabTemp.Active:= False; if FileExists(Form6.Verzeichnis.Text + '\Temp.DB') then DeleteFile(Form6.Verzeichnis.Text + '\Temp.DB'); Tabelle:= TTable.Create(nil); with Tabelle do begin SessionName:= Form1.TabKunden.SessionName; TableType := ttParadox; TableName := Form6.Verzeichnis.Text+ '\Temp.DB'; with FieldDefs do begin Clear; Add('Bezeichnung', ftString, 30); end; CreateTable; end; Form1.TabTemp.Active:= True; end;
Delphi-Quellcode:
Vieleicht hilft es ja jemandem mit ähnlichen Sorgen.... :hi:
procedure Anlagenschema;
var A: Integer; begin for A:=0 to 8 do begin if Form1.TabAnlagenschema.Fields.Fields[A].AsBoolean then begin Form1.TabTemp.Append; Form1.TabTemp.Edit; Form1.TabTemp.FieldValues['Bezeichnung']:= Form1.TabAnlagenschema.Fields.Fields[A].FieldName; Form1.TabTemp.Post; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 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 by Thomas Breitkreuz