我只想获得一张桌子的价值" b"如果表" a"价值是" - " 如果表格中的值" b"为空,然后得到表" a"的值。即使它" - "
Microsoft Access说" Missing operator"使用此查询:
SELECT ts.data_generacio,
ts.estat,
ts.exercici,
Month(tsl.data) AS Mes,
Day(tsl.data) AS Dia,
tsl.data,
tsl.cod_treb,
t.nom_treb,
tsl.hores,
p.cod_proj,
p.acronim AS nom_proj,
j.justificacio,
tsl.timesheet_id,
p.ref,
CASE WHEN tsl.activitat != '' THEN tsl.activitat ELSE ts.activitat END AS Activitat
FROM timesheet_lines AS tsl
LEFT JOIN timesheets AS ts
ON tsl.timesheet_id = ts.id
LEFT JOIN treballadors AS t
ON tsl.cod_treb = t.cod_treb
LEFT JOIN justificacions AS
ON ts.id_justificacio = j.id
LEFT JOIN projectes AS p
ON j.cod_proj = p.cod_proj;
我认为错误发生在CASE表达式行上。
答案 0 :(得分:1)
MS Access不支持CASE
语句。使用IIF
:
IIF(tsl.activitat <> '', tsl.activitat, ts.activitat ) AS Activitat
我不确定Access是否支持LEFT JOIN
上的别名,但它可能
注意(尽管标记正确),问题的标题可能很麻烦......大多数人在编写“MS SQL”时都会引用Transact-SQL(TSQL)。 Transact-SQL由MS SQL Server使用,但不是由MS Access使用,后者使用自己的SQL方言(称为“Access SQL”,相比之下相当有限)