AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Report erstellen - wie Query gestalten
Thema durchsuchen
Ansicht
Themen-Optionen

Report erstellen - wie Query gestalten

Ein Thema von messie · begonnen am 21. Jan 2013 · letzter Beitrag vom 25. Jan 2013
Antwort Antwort
Seite 1 von 3  1 23      
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Report erstellen - wie Query gestalten

  Alt 21. Jan 2013, 20:21
Datenbank: Firebird • Version: 2.5 • Zugriff über: Quickreport
Moin,

ich bin gerade dabei einen Quickreport auf Datenbank umzustellen. Dazu würde ich gerne die TQRDBText-Komponente benutzen. Die bietet als Property ein DataSet(meine Query), DataField und Mask (für die leidige Float-Formatierung).

Nun habe ich in meiner DB-Hierarchie den Fall, dass ich immer mehrere Ergebnisse gleicher Hierarchie bekomme.
Code:
SELECT
        Table1.ID, Table1.Param1, Table2.ID Table2.Param1, Table2.Param2, Table3.Param1, Table3.Param2
FROM
        Table1, Table2, Table3
WHERE
        Table1.UpIndex = 17
AND
        Table2.UpIndex = Table1.ID
AND
        Table3.UpIndex = Table2.ID
UpIndex ist der Index der jeweils höheren Hierarchie.
Mein Problem: Table3 enthält Messwerte in Param2, die aus verschiedenen Messungen (Table3.Param1) stammen. Damit sind die Felder nicht eindeutig und ich kann sie nicht direkt zuweisen.

Brauche ich für jede Ausgabekomponente eine eigene Query? Denn das wird zur Laufzeit erzeugt und kann theoretisch viele Queries bedeuten. Und die müssen ja so lange gefüllt bleiben, bis der Report ausgegeben wird.
Oder kann man das so verfeinern, dass ich für jedes Table3.Param1 ein eigenes Feld Table3.Param2 erzeugen kann?

Danke, Messie

Edit: SQL mit Code-Tags statt Quote-Tags versehen. Sieht beides nicht toll aus
Edit2: jetzt ist es lesbarer

Geändert von messie (21. Jan 2013 um 20:24 Uhr)
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 13:36
Ich möchte die Frage noch mal etwas verfeinern: kann ich in der Query temporäre Fields erzeugen, die ich dann nochmal mit einer Art eigenem Select füllen kann?

Ich habe nämlich festgestellt, dass unterschiedliche Queries in so einem Report auch ihre Fallstricke haben.

Grüße, Messie
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 14:00
hi,

Ich möchte die Frage noch mal etwas verfeinern: kann ich in der Query temporäre Fields erzeugen, die ich dann nochmal mit einer Art eigenem Select füllen kann?
so was wäre doch eigentlich der perfekte EInsatzzweck einer Stored Procedure... Dann hast Du auf Clientseite weiterhin eine einfache Query
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 14:39
hi,

Ich möchte die Frage noch mal etwas verfeinern: kann ich in der Query temporäre Fields erzeugen, die ich dann nochmal mit einer Art eigenem Select füllen kann?
so was wäre doch eigentlich der perfekte EInsatzzweck einer Stored Procedure... Dann hast Du auf Clientseite weiterhin eine einfache Query


ich probier' es mal....
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 14:45
Ich weiß jetzt nicht ob FB das kann:
Code:
select a.feld1,b.feld2
from tabelle a
     ,(select id,feld2 from tabellex) b
where a.id=b.id
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 15:07
Kann FB ist aber nicht besonders performant. ( in anderen DBMS aber auch nicht)
Markus Kinzler
  Mit Zitat antworten Zitat
jsheyer

Registriert seit: 9. Jun 2005
Ort: Jüchen
90 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 15:07
so was ähnliches kann FB, wenn das Ergebnis eindeutig ist, z. B.

select a.field1, a.field2, (select field1 from b where b.field1=a.field3) as field3
from a
where a.field1='123'

Würde das innere select mehrere Datensätze liefern, kommt es zu einer Fehlermeldung.
man kann so aber auch mit den Aggregrat Funktionen arbeiten (sum, max, min, avg) oder andere Berechnungen anstellen.

select a.field1, a.field2, (select sum(field1) from b where b.field1=a.field3) as field3
from a
where a.field1='123'

Gruß
Jörg
Jörg Heyer
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 15:18


ich probier' es mal....
wenn es nicht klapp, dann schick mir die Metadaten oder ein Backup der DB per PN, dann schraub ich dir die kurz zusammen.... Müsstest mir halt erklären wo die "berechneten Werte" herkommen...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 17:49
[OT]
Kann FB ist aber nicht besonders performant. ( in anderen DBMS aber auch nicht)
Dann hab ich echt Glück, ich kann mich da nicht beschweren.

Gruß
K-H
[/OT]
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: Report erstellen - wie Query gestalten

  Alt 22. Jan 2013, 18:45
Ich weiß jetzt nicht ob FB das kann:
Code:
select a.feld1,b.feld2
from tabelle a
     ,(select id,feld2 from tabellex) b
where a.id=b.id
Das ist ein ganz normaler Join, oder?! Wo ist bitte der Unterschied zu
Code:
select a.feld1,b.feld2
from tabelle a
     ,tabellex b
where a.id=b.id
Kann FB ist aber nicht besonders performant. ( in anderen DBMS aber auch nicht)
Ich nutze FB nicht produktiv, aber das kann ich kaum glauben.


Und was hat das mit der Frage des TE zu tun?
Vielleicht habe ich die nicht verstanden.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 04:10 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