【发布时间】:2016-05-27 11:26:01
【问题描述】:
我的 MS Access 记录源中出现语法错误(“缺少运算符”)。 SQL Server 2012 执行它没有问题,但是当我让 Access 2016 执行它时,我得到这个错误。我希望 Access 有不同的案例陈述要求,但我不确定。
SELECT
r.Rubrieknaam,
CASE
WHEN (SELECT count(Voorwerpnummer)
FROM VoorwerpInRubriek
WHERE rubrieknummer = r.Rubrieknummer) IS NULL
THEN 0
ELSE (SELECT count(Voorwerpnummer)
FROM VoorwerpInRubriek
WHERE rubrieknummer = r.Rubrieknummer)
END AS [nInRubriek],
CASE
WHEN (SELECT Count(*)
FROM Rubriek
WHERE HoofdrubriekNr = r.rubriekNummer) IS NULL
THEN 0
ELSE (SELECT Count(*)
FROM Rubriek
WHERE HoofdrubriekNr = r.rubriekNummer)
END AS [nSubrubrieken],
CASE
WHEN (SELECT Rubrieknaam
FROM Rubriek
WHERE Rubrieknummer = r.hoofdrubrieknr) IS NULL
THEN 'N.V.T.'
ELSE (SELECT Rubrieknaam
FROM Rubriek
WHERE Rubrieknummer = r.hoofdrubrieknr)
END AS [Hoofdrubrieknaam]
FROM
Rubriek r;
有人知道问题出在哪里吗?
提前致谢。
【问题讨论】:
-
MS Access 不支持
case。另外,子查询中的count()不返回NULL,而是返回0。