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 ?