我只想获取一个表“ 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表达式行上。
MS Access不支持CASE语句。用途IIF:
CASE
IIF
IIF(tsl.activitat <> '', tsl.activitat, ts.activitat ) AS Activitat
我不确定Access是否支持别名LEFT JOIN,但是它可能支持
LEFT JOIN
注意(尽管标签正确),问题的标题可能会很麻烦……大多数人在编写“ MS SQL”时都引用了Transact-SQL(TSQL)。MS SQL Server使用Transact-SQL,但使用其自己的SQL方言(称为“ Access SQL”,并且在比较中相当有限)的MSAccess不使用Transact-SQL。