Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQL Abfrage mit Summe über 2 Tabellen (https://www.delphipraxis.net/212754-sql-abfrage-mit-summe-ueber-2-tabellen.html)

HCB 26. Mär 2023 14:14

Datenbank: Access • Version: 2003 • Zugriff über: SQL / Delphi FireDac

SQL Abfrage mit Summe über 2 Tabellen
 
Hallo, ich habe folgende SQL:

Select * from (SELECT ABFStatKundenNr, sum(ABFStatUmsatz) as total
from ABFStat
WHERE ABFStatDatum between #01/01/2022# and #31/12/2022# and ABFStatKundenNr
IN
(SELECT PersKtoNummer FROM sPersKto WHERE PersKtoSelMerkmal = '40000' )
group by ABFStatKundenNr) order by total desc;

funktioniert einwandfrei, der Kunde mit dem höchsten Umsatz wird mit der zugehörigen Kundennummer als erstes in der List angezeigt.

Nun möchte ich zu der Kundennummer auch den zugehörigen Namen anzeigen der in der Tabelle sPersKto als PersKtoName1 steht.
Folgende Änderung funktioniert leider nicht:
... IN
(SELECT PersKtoNummer, PersKtoName1 FROM sPersKto WHERE PersKtoSelMerkmal = '40000' )
group by ABFStatKundenNr) order by total desc;

Ich würde mich sehr freuen, wenn ich einen Tipp bekommen würde, damit ich das hinbekomme.

LG Harry

himitsu 26. Mär 2023 14:41

AW: SQL Abfrage mit Summe über 2 Tabellen
 
IN ist für eine Prüfung, nicht für die Anzeige ... drum kann es auch nur ein Feld mit einer Reihe eines anderen Feldes vergleichen.

Spalten für die anzeige also in die ersten beiden SELECTs, bzw. via SubSELECT oder JOIN dort anhängen.



Wozu das erste SELECT * FROM?
Doch nicht etwa nur wegen dem ORDER-BY?
SQL-Code:
order by sum(ABFStatUmsatz) desc;
oder
SQL-Code:
order by 2 desc; -- weil "total" die zweite Spalte ist

Delphi.Narium 26. Mär 2023 14:54

AW: SQL Abfrage mit Summe über 2 Tabellen
 
Probier bitte mal, ob Access mit sowas zurechtkommt:
SQL-Code:
select b.PersKtoName1, a.ABFStatKundenNr, a.Total from
(
  select ABFStatKundenNr, sum(ABFStatUmsatz) as total
  from ABFStat
  where ABFStatDatum between #01/01/2022# and #31/12/2022# and ABFStatKundenNr
  in
  (
    select PersKtoNummer from sPersKto where PersKtoSelMerkmal = '40000'
  )
  group by ABFStatKundenNr
) a,
sPersKto b
where a.ABFStatKundenNr = b.PersKtoNummer
order by total desc;

HCB 26. Mär 2023 15:09

AW: SQL Abfrage mit Summe über 2 Tabellen
 
@delphi.Narium

Du bist ein GENIE!
Jo, das wars. Dein SQL hat auf Anhieb funktioniert!!!!
Ich bin jetzt glücklich, danke dass du mir geholfen hast.:-D Alleine hätte ich das NIE hingekriegt.:oops:

LG Harry

himitsu 26. Mär 2023 21:30

AW: SQL Abfrage mit Summe über 2 Tabellen
 
IHHHHHH, nicht so.

Access kann auch JOINs in Richtig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 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-2025 by Thomas Breitkreuz