我提出了一个老问题,但我无法使用答案: Old link
有人给了我这个答案:
SELECT
SUM(TotaalPrijs) As TotaalPrijs,
AutoNR,
AutoKlasse,
MAX(Dagen) as Dagen,
dag125KM as PrijsPerDag,
ExtraKM As PrijsPerExtraKM,
FactuurNR,
KlantNR,
Begindatum,
Einddatum,
Borg,
voorletters,
tussenvoegsel,
achternaam,
straatnaam,
huisNR,
Postcode,
rekeningNR,
Plaats,
KMteVEEL,
BorgA
FROM (SELECT p.Borg as BorgA,f.Dagen, f.AutoNR AS carNR, a.AutoNR, a.Klasse AS AutoKlasse, p.Klasse, p.dag125KM, p.ExtraKM, (p.dag125KM*f.Dagen) AS MinPrijs, f.FactuurNR, f.KlantNR, f.Begindatum, f.Einddatum, f.Borg, (KMteVEEL*[Prijzen]![ExtraKM])+([Prijzen]![dag125KM]*[Factuur]![Dagen]) AS TotaalPrijs, g.voorletters, g.tussenvoegsel, g.achternaam, g.straatnaam, g.huisNR, g.Postcode, g.rekeningNR, g.Plaats, IIf([Factuur]![EindKMStand]-[Factuur]![BeginKMStand]-([Factuur]![Dagen]*125) < 0, 0, [Factuur]![EindKMStand]-[Factuur]![BeginKMStand]-([Factuur]![Dagen]*125)) AS KMteVEEL
FROM autos a
INNER JOIN Factuur f ON a.AutoNR = f.AutoNR
INNER JOIN Prijzen p ON a.Klasse = p.Klasse
INNER JOIN Gegevens g ON f.KlantNR = g.KlantNR
) AS sub
GROUP BY AutoNR,
AutoKlasse,
dag125KM,
ExtraKM,
FactuurNR,
KlantNR,
Begindatum,
Einddatum,
Borg,
voorletters,
tussenvoegsel,
achternaam,
straatnaam,
huisNR,
Postcode,
rekeningNR,
Plaats,
KMteVEEL,
BorgA
但我得到一个语法错误缺少运算符。 有什么办法让这个工作? 您可能需要检查旧问题以更好地理解案例。
谢谢,
答案 0 :(得分:1)
对于表别名,MS Access要求join
运算符周围的括号为as
。将from
替换为:
FROM (SELECT p.Borg as BorgA, f.Dagen, f.AutoNR AS carNR, a.AutoNR, a.Klasse AS AutoKlasse, p.Klasse,
p.dag125KM, p.ExtraKM, (p.dag125KM*f.Dagen) AS MinPrijs, f.FactuurNR, f.KlantNR,
f.Begindatum, f.Einddatum, f.Borg,
(KMteVEEL*[Prijzen]![ExtraKM])+([Prijzen]![dag125KM]*[Factuur]![Dagen]) AS TotaalPrijs,
g.voorletters, g.tussenvoegsel, g.achternaam, g.straatnaam, g.huisNR, g.Postcode,
g.rekeningNR, g.Plaats,
IIf([Factuur]![EindKMStand]-[Factuur]![BeginKMStand]-([Factuur]![Dagen]*125) < 0, 0, [Factuur]![EindKMStand]-[Factuur]![BeginKMStand]-([Factuur]![Dagen]*125)) AS KMteVEEL
FROM ((autos as a INNER JOIN
Factuur as f
ON a.AutoNR = f.AutoNR
) INNER JOIN
Prijzen as p
ON a.Klasse = p.Klasse
) INNER JOIN
Gegevens as g
ON f.KlantNR = g.KlantNR
) sub
当然,子查询中的算术逻辑可能也存在问题。专注于让子查询首先工作。