Возвращение значений в запросе доступа MS, которые не имеют результатов - PullRequest
1 голос
/ 08 мая 2019

У меня есть запрос MS Access 2013, который запускается автоматически и показывает количество случаев, когда произошли определенные инциденты в каждом округе.

Проблема заключается в том, что в некоторых округах обычно нет таких инцидентов, поэтому в запросе отображаются только округа с инцидентами.

Мне нужен список отчетов всех округов, даже если значение 0.Я знаю, что упускаю что-то простое здесь, но я не могу понять это, и все мои исследования, чтобы найти ответ, оставили меня без ответа.

Я унаследовал эту базу данных, поэтому она не оптимально спроектирована.Я также новичок в доступе к базам данных.

Я проверил все параметры запроса в режиме конструктора и в представлении SQL (возможно, мне его не хватает).

Вот весь коддля запроса:

SELECT [FOCUS-CGDataComplete_By_Month/Year].COUNTY, Count([FOCUS- 
CGDataComplete_By_Month/Year].COUNTY) AS CT
FROM [FOCUS-CGDataComplete_By_Month/Year]
GROUP BY [FOCUS-CGDataComplete_By_Month/Year].COUNTY
ORDER BY Count([FOCUS-CGDataComplete_By_Month/Year].COUNTY) DESC;

Запрос выполняется правильно и правильно возвращает все округа с инцидентами.Таким образом, округа с инцидентами имеют правильный номер, но округа без инцидентов не отображаются (я знаю, что это ожидается, но как мне «переопределить» это?)

1 Ответ

0 голосов
/ 10 мая 2019

Во-первых, вам понадобится таблица, содержащая все возможные округа, которые вы хотите видеть в выходных данных - если есть округа, которые не указаны ни в одной записи в таблице [FOCUS-CGDataComplete_By_Month/Year], то эта таблица, очевидно, не может сообщить о графства, о которых он не знает.

Оснащенный таблицей, содержащей все возможные округа, вы можете использовать left join для вывода всех округов в этой таблице вместе с количеством записей, которые появляются в вашей таблице [FOCUS-CGDataComplete_By_Month/Year], связанной с каждым округом.

Такой запрос может быть что-то вроде следующего:

select c.county, count(f.county) as ct
from countytable c left join [focus-cgdatacomplete_by_month/year] f on c.county = f.county
group by c.county
order by count(f.county) desc

Здесь я предполагаю, что countytable - это таблица, содержащая все возможные значения для поля county - вы должны переименовать ее в соответствии с именем этой таблицы в вашей базе данных.

...