Einzelnen Beitrag anzeigen

waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#1

Summenbildung über Query, oder doch doppelt abfragen

  Alt 10. Aug 2015, 16:57
Datenbank: Firebird • Version: 2.5 • Zugriff über: zeos
Hallo,
über eine SQL-Abfrage bilde ich die Summen über VK-Preise etc. je Artikel in einem bestimmten Zeitraum. Dies bringe ich über ein GRID zur Anzeige.
Nun möchte ich im Grid-Footer die Summe über die Spalten anzeigen.
Delphi-Quellcode:
SQL.Add( 'SELECT');
             SQL.Add( ' A.NR,');
             SQL.Add( ' sum( OA.PREIS ) AS Sum_Umsatz,');
             SQL.Add( ' sum( OA.EK_PREIS ) AS Sum_EK,');
             SQL.Add( ' sum( OA.MENGE ) AS Sum_Anzahl,');
             SQL.Add( ' ( 100 *( 1 - SUM( OA.EK_PREIS ) / IIF( SUM( OA.PREIS ) = 0 ,0.01 , SUM( OA.PREIS )))) AS EBITDA');
             SQL.Add( ' FROM');
             SQL.Add( ' WHERE');
             SQL.Add( ' AND OA.VKDAT >= '+QuotedStr(FormatDateTime('DD.MM.YYYY',StartOfTheMonth(jvdtmpckr_Start.Date))));
             SQL.Add( ' AND OA.VKDAT<= '+QuotedStr(FormatDateTime('DD.MM.YYYY',EndOfTheMonth(jvdtmpckr_Ende.Date))));
             SQL.Add( ' GROUP BY');
             SQL.Add( ' A.NR,');
Bisher bilde ich diese Gesamtsumme indem ich separate Abfrage wie oben ohne Gruppierung auf Artikel erstelle.
Bedeutet, dass die gesamte Abfrage mindestens 2 mal durchlaufe.
Gibt es eine Möglichkeit eine Abfrage über die erste Query zur Gesamtsummenbildung durchzufühen wenn ja wie ?

Wie kann ich die Abfrage, dieses Vorgehen optimieren ?
mfg wf

Geändert von waldforest (10. Aug 2015 um 17:13 Uhr)
  Mit Zitat antworten Zitat