Drei Versuche:
SQL-Code:
select
top 30
ABFStatKundenNr,
total
from
(
select
ABFStat.ABFStatKundenNr,
sum(ABFStat.ABFStatUmsatz) as total
from ABFStat
where ABFStat.ABFStatDatum > #01/01/2023#
and exists
(
select 1
from sPersKto
where sPersKto.PersKtoArt = 68
and sPersKto.PersKtoNummer = ABFStat.ABFStatKundenNr
)
group by ABFStat.ABFStatKundenNr
)
order by total desc
SQL-Code:
select
top 30
ABFStatKundenNr,
total
from
(
select
a.ABFStatKundenNr,
sum(a.ABFStatUmsatz) as total
from
ABFStat a,
sPersKto b
where b.PersKtoNummer = a.ABFStatKundenNr
and b.PersKtoArt = 68
and a.ABFStatDatum > #01/01/2023#
group by a.ABFStatKundenNr
)
order by total desc;
SQL-Code:
select
top 30
ABFStatKundenNr,
total
from
(
select
a.ABFStatKundenNr,
sum(a.ABFStatUmsatz) as total
from
(select ABFStatKundenNr, ABFStatUmsatz from ABFStat where ABFStatDatum > #01/01/2023#) a, -- Datenmengen möglichst früh eingrenzen
(select PersKtoNummer from sPersKto where PersKtoArt = 68) b
where b.PersKtoNummer = a.ABFStatKundenNr -- und erst dann die Teilmengen miteinander verbinden
group by a.ABFStatKundenNr
)
order by total desc
Und zur Vorbeugung:
Zitat von
himitsu (aus einem anderen Thread zum gleichen Themenkomplex):
IHHHHHH, nicht so.
Access kann auch JOINs in Richtig.
Weiß ich, so geht aber auch und ist für ich leichter verständlich
Fehler im From?
SQL-Code:
select
Sum(Spaltenname) as AliasName -- as vor den Aliasnamen
from TabellenName Aliasname -- kein as vor den Aliasnamen
group by Spaltenname
Manche Datenbanken kommen in beiden Fällen mit dem AS zurecht.
Manche Datenbanken kommen in beiden Fällen ohne das AS zurecht.
Manche Datenbanken kommen nur im ersten Fall mit dem AS zurecht, aber nicht im zweiten Fall.
Das könnte bei
Access die Ursache für den 'Syntaxfehler in FROM-Klausel' sein.