Я пытаюсь написать запрос по отношению к образовательной системе, который возвращает числовые значения, основанные на следующих типах проверок, проведенных в определенных школах в ноябре, только я не совсем понимаю, как это сделать.
Мне нужно вернуть список организаций, на которые ссылались за несоблюдение в ноябре, а затем указать количество посещений за тот месяц, которые привели к цитированию. Мне нужен подсчет для каждого типа из условия insp.Type_of_Visit__c, основанного на каждом поставщике, но не на отдельном поставщике в случае, если им было выдано несколько несоответствий.
Мне нужно, чтобы каждый тип посещения был отдельной колонкой.
Пока что мой встроенный подзапрос возвращает нефильтрованные результаты:
SELECT ...
, (SELECT COUNT(*) FROM Inspection__c WHERE Type_of_Visit__c = 'Pre-Licensing') AS [Number of PreLicensing Statement of Non-Compliance issue date]
Это не фильтрует предложения WHERE, которые у меня есть.
Кроме того, мне нужно будет повторять эту строку для каждого типа посещения, если нет лучшего способа сделать это.
Честно говоря, я просто не понимаю, как правильно это сделать.
SELECT a.Provider_Number__c AS [Provider ID]
, a.Provider_No__c AS [Legacy System Number]
, a.License_Status__c AS [License Status]
, a.Record_Type_Name__c AS [Record Type Name]
, a.Provider_Status__c AS [Provider Status]
, a.License_Type__c AS [License Type]
, a.Name AS [Name]
, a.Provider_Address_1__c AS [Street Address 1]
, a.Provider_Address_2__c AS [Street Address 2]
, a.Provider_city_text__c AS City
, a.Provider_Zip_Code__c AS [Zip Code]
, a.Phone
, a.Provider_Email__c AS Email
, a.Capacity__c AS [Licensed Capacity]
, insp.Date_of_Visit__c AS [Visit Date]
, inv.Statement_of_non_compliance_Issue_Date__c AS [Statement of Non-Compliance Issued Date]
, (SELECT COUNT(*) FROM Inspection__c WHERE Type_of_Visit__c = 'Pre-Licensing') AS [Number of PreLicensing Statement of Non-Compliance issue date]
FROM Inspection__c insp
JOIN Account a ON a.Id = insp.Provider_No__c
JOIN Investigation__c inv ON inv.Provider_Id__c = a.Id
WHERE (insp.Date_of_Visit__c BETWEEN '2018-11-01' AND '2018-11-30')
AND (a.Record_Type_Name__c = 'Large Group' OR a.Record_Type_Name__c = 'Small Group')
AND insp.Type_of_Visit__c IN ('Pre-Licensing',
'Provisional License 90-day Monitoring',
'Provisional License Renewal',
'Renewal-Monitoring',
'Renewal-Full Review',
'Monitoring',
'Enhanced Monitoring',
'Capacity Increase',
'Change of Location',
'Change of Space',
'Follow-up',
'Monitoring outside differential Licensing Cycle',
'License Upgrade',
'Re-Activate Provider',
'Technical Assistance',
'Progress',
'Renewal-Enhanced Monitoring')
Мне нужно подсчитать каждый тип посещения для каждого провайдера и вернуть значения в таблицу. Это не обязательно должна быть функция COUNT, если есть лучший способ.
Любая помощь очень ценится. Спасибо.