2017-04-24 1 views
0

테이블 "a"값이 "-"이면 하나의 테이블 "b"의 값을 얻고 자합니다 테이블 "b"의 값이 비어 있으면 테이블 " 나는 오류가 CASE 식 라인에 생각MS Access Query with CASE 문

 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; 

: - a는 "이 경우에도"이 쿼리에 누락 된 연산자 ""

Microsoft Access를 말한다 ".

+0

그 어떤 경우에도 _ 사례 _ 아니요 ... – jarlh

+1

제거 오류가 사라지는시기를 찾으려면 한 번에 한 줄을 입력하십시오. – jarlh

+0

도움이되지 않았습니다 .... –

답변

0

MS 액세스는 CASE 문을 지원하지 않습니다. IIF 사용 : 액세스가 하나 LEFT JOIN에 별명을 지원하는지 잘 모르겠어요

IIF(tsl.activitat <> '', tsl.activitat, ts.activitat) AS Activitat 

하지만, 아마 (제대로 태그가 있지만), 질문의 제목은 ... 귀찮은 수 있습니다

참고 않는 대부분의 사람들은 "MS SQL"을 작성할 때 Transact-SQL (TSQL)을 참조합니다. Transact-SQL은 MS SQL Server에서 사용하지만 자체 SQL Dialect ("Access SQL"이라고 함)를 사용하는 MS Access에서는 사용하지 않습니다.