Слишком долго для комментария.
Синтаксическая ошибка, которую вы получаете, заключается в том, что ваши встроенные подзапросы отформатированы неправильно.Вы не можете начать с функции COUNT(*)
;каждый из них должен быть полностью сформирован SELECT
заявления.Затем каждый из них должен быть заключен в скобки.
Вот как должен выглядеть ваш запрос.
SELECT
Name AS State
,(
SELECT
COUNT(*)
FROM
NamrsFrozen2017.Investigation2017
WHERE
FiscalYear = 2017
AND StateName IN
(
SELECT DISTINCT StateName
FROM NamrsFrozen2017.Investigation2017
WHERE ReportDate <> ''
)
) AS [Report Date Records]
,(
SELECT
COUNT(*)
FROM
NamrsFrozen2017.Investigation2017
WHERE
FiscalYear = 2017
AND ReportDate != ''
AND StateName IN
(
SELECT DISTINCT StateName
FROM NamrsFrozen2017.Investigation2017
WHERE (NOT ReportDate = '')
)
) AS [Report Date Records with Data]
FROM
(SELECT DISTINCT Name FROM NamrsFullDw.UsState) AS s
LEFT JOIN
NamrsFrozen2017.Investigation2017 AS c
ON
s.Name = c.StateName
AND c.FiscalYear = 2017
GROUP BY
Name
ORDER BY
Name;
Здесь есть дополнительный вопрос, который заключается в том, будет ли этот запрос выполнять то, что вы ожидаете.К замечанию Ларну в комментариях, агрегатные функции по-разному обрабатывают NULL
в разных обстоятельствах.Но без образцов данных для сравнения я не могу сказать, будет ли эта функциональная версия запроса возвращать то, что вы хотите.