Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi zusätzliche Table in Join aufnehmen ? (https://www.delphipraxis.net/44053-zusaetzliche-table-join-aufnehmen.html)

Hansa 12. Apr 2005 17:45

Datenbank: FB 1.5 • Zugriff über: blubb

zusätzliche Table in Join aufnehmen ?
 
Hi,

es geht um eine Warengruppenstatistik. Allerdings habe ich zu diesem Zweck nur eine Artikel-Statistik und halt die Artikel. Über letzere komme ich ja auch an die Warengruppen dran.

momentan habe ich so was hier (verkürzt) :

Delphi-Quellcode:
    WgDS.close;
    WgDS.SelectSQL.Text := 'SELECT * FROM WG WHERE NR <= '+IntToStr (99);
    WgDS.open;                                   // vorerst fest ^
    while not WgDS.Eof do with DS do begin
      Close;
      SelectSQL.Clear;
      SelectSQL.Text := 'SELECT A.NR, A.BEZ, ASTAT.JAHR';
      SelectSQL.Add(',SUM (UMSATZ) AS GESUMSATZ');
      SelectSQL.Add('FROM ART A RIGHT JOIN ARTSTAT ASTAT');
      SelectSQL.Add('ON (A.ID = ASTAT.ID_ART) WHERE A.ID_WGHAUPT = ');
      SelectSQL.Add(LeseFeld (EingDM.WgDS,'ID')+' AND JAHR = 2004');
      SelectSQL.Add('GROUP BY A.NR, A.BEZ, ASTAT.JAHR');
      Open;
      WgDs.Next;
    end;
  end;
Wie man sieht, bin ich kurzerhand hingegangen und laufe über die Artikel, mit der Einschränkung auf eine bestimmte Warengruppe. Vorerst ist das der Wert den ich auch brauche. Allerdings mit folgendem Nachteil : ich erhalte für jede Warengruppe eine eigene Datenmenge.

Folgendes ist noch gefordert : Sortierung nach Umsatz pro Warengruppe und Anzeige der Anteile am Gesamtumsatz. Ich muß deshalb aus den zwei Selects eines machen. 8) Nur wie am besten ?

nieurig 13. Apr 2005 06:47

Re: zusätzliche Table in Join aufnehmen ?
 
Guten Morgen,
so sollten die gleichen Ergebnisse in einer Datenmenge landen und nach größe sortiert sein.

SQL-Code:
SELECT A.ID_WGHAUPT, A.NR, A.BEZ, ASTAT.JAHR, SUM (UMSATZ) AS GESUMSATZ
FROM ART A RIGHT JOIN ARTSTAT ASTAT
ON (A.ID = ASTAT.ID_ART)
WHERE JAHR = 2004
GROUP BY A.ID_WGHAUPT, A.NR, A.BEZ, ASTAT.JAHR
ORDER BY GESUMSATZ
Schönen Tag noch ...
Niels


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 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