Проблема множественных подзапросов в SQL - PullRequest
0 голосов
/ 17 июня 2019

В настоящее время борется со вторым подзапросом (t3), который дает мне синтаксическую ошибку.Запрос работает нормально, если исключен t3.

SELECT switch(LEFT(t1.[treatment],1)='C',"Complaint",LEFT(t1.[treatment],1)='P',"Post") AS Treatment, count(t1.[ID]) AS Total_Vol, count(t2.[event]) AS Total_Posted, format(count(t2.[event]) / count(t1.[ID]),"0.00%") AS Percentage, COUNT(IIF(t1.[requirements]='1',1,)) AS Special _Population,count(t3.[approved]) as Approved_vol
FROM Main_audit_table_v3 AS t1 LEFT JOIN (SELECT t2.[ID], t2.[event] FROM Main _table AS t2 WHERE t2.event Not Like ('NA'))  AS t2 ON t1.[ID] = t2.[ID]
LEFT JOIN (SELECT t3.[ref],t3.[requirement],t3.[approved] from Main_table AS t3 where 
t3.[requirement] = '1' and t3.[approved] not like ('NA')) as t3
t2.[ID] = t3.[ID]
GROUP BY LEFT(t1.[treatment],1);

Ожидаемый результат - столбец [утвержденный] будет содержать количество записей, где требование = 1 и утверждено не так, как NA.

1 Ответ

0 голосов
/ 17 июня 2019

В MS Access вам нужны дополнительные скобки для JOIN с.И вам не хватает ON:

SELECT . . .
FROM (Main_audit_table_v3 AS t1 LEFT JOIN
      (SELECT t2.[ID], t2.[event]
       FROM Main _table AS t2
       WHERE t2.event Not Like ('NA')
      ) AS t2 ON t1.[ID] = t2.[ID]
     ) LEFT JOIN
     (SELECT t3.[ref], t3.[requirement], t3.[approved] 
      FROM Main_table AS t3 
      WHERE t3.[requirement] = '1' and t3.[approved] not like 'NA'
     ) as t3
     ON t2.[ID] = t3.[ID]
GROUP BY LEFT(t1.[treatment], 1);
...