В этом запросе я пытаюсь получить счет, который дает мне количество пациентов для каждой практики в данных условиях.Отказ от статьи
Проблема в том, что я должен показать пациентов, которые имели> = 3 посещения офиса в прошлом году.
Count (D.PID)
в списке выбора игнорирует
HAVING COUNT (admitdatetime)> = 3
Вот мой запрос
select distinct D.PracticeAbbrevName, D.ProviderLastName, count(D.pid) AS Count
from PersonDetail AS D
left join Visit AS V on D.PID = V.PID
where D.A1C >=7.5 and V.admitdatetime >= (getdate()-365) and D.A1CDays <180 and D.Diabetes = 1
group by D.PracticeAbbrevName, D.ProviderLastName
having count(admitdatetime)>=3
order by PracticeAbbrevName
Если я избавлюсь от функции count для D.pid и просто покажу каждый PID отдельно, моя фраза работает правильно.
Есть что-то о счете, и теперь у нас все работает правильно.
Вы не можете отобразить каждый PID индивидуально с такой 'группы by'. Пожалуйста, покажите свой результат и почему это неверно. – GSerg
ПРИМЕЧАНИЕ: 'COUNT (column)' не совпадает с 'COUNT (столбец DISTINCT)'. (Также использование 'SELECT DISTINCT' с' GROUP BY' почти всегда избыточно, но не то, что вызывает вашу проблему здесь) – RBarryYoung
, когда я отображаю каждый PID индивидуально, я добавляю PID для группировки. В качестве примера, для одного имени поставщика, COUNT равно 21, но когда я выбираю индивидуальный идентификатор PID, есть 2. Когда я удаляю оператор утверждения для отдельного PID, он переходит к 21 уникальному PID –