В следующей таблице мы подсчитали, сколько раз пациент не показывался для медицинского назначения (NOSHOW). Он основан на том, если они не показывались в течение текущего дня, тогда мы показываем их счет этого из прошлого. Как я могу получить также отдел, для которого они не показывались? У нас есть 6 разных медицинских отделений, поэтому менеджер хочет узнать, есть ли проблема только для стоматологов или для всех. Это поможет им, возможно, не заказать кого-то и т.д.Необходимость подсчета в подсчете
SELECT Distinct
Appt_DateTime j,
Patient_Name j,
Appt_Status j,
Appt_Sched_Department_ID j,
Appt_Sched_Department_Descr j,
Patient_id j,
Patient_number j,
Appt_NoShow_Date j,
ISNULL(P.NotShowCount,0) AS NotShowCount
FROM
vwGenPatInfo vwGenPatInfo j
INNER JOIN vwGenPatApptInfo vwGenPatApptInfo ON vwGenPatInfo.Patient_ID=vwGenPatApptInfo.Patient_ID
LEFT JOIN (
SELECT Patient_ID, COUNT(Appt_Status) AS NotShowCount
FROM (SELECT Appt_DateTime, Appt_Status, Appt_Sched_Department_ID, Appt_Sched_Department_Descr, Appt_NoShow_Date, Patient_ID
FROM vwGenPatapptInfo AS vwGenPatApptInfo
WHERE (Appt_Status = 'N') AND (Appt_DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), - 1))) AS L
GROUP BY
Patient_ID) AS P ON vwGenPatInfo.Patient_ID=P.Patient_ID
WHERE
vwGenPatApptInfo.Appt_Status='N'
ORDER BY
vwGenPatApptInfo.Appt_Sched_Department_ID,
vwGenPatApptInfo.Appt_DateTime
данные в настоящее время, как это: последнее число является счетчиком предыдущих noshows. Итак, мы хотим разбить это, как Adult Medicine_NS 3, Dental_NS 9. Показатель datetime - это noshow с предыдущего дня. Звонок вызовет их перепланировать.
Patient_Name Appt_Sched_Departmen Appt_NoShow_Date Previous No Show Count
8/31/2016 No Shows 8/30/2016
Patient_number
Sinca Blay Adult Medicine 8/30/2016 12:05:46PM 12
Wiske Semns Adult Medicine 8/30/2016 5:25:32PM 4
Rose Alhar Adult Medicine 8/30/2016 5:57:01PM 6
Вам нужно будет начать с запроса, который действительно действителен. Этот запрос, который вы опубликовали, теперь явно использует то, что вы используете, поскольку оно даже не близко к действительности. У вас есть каждый столбец с псевдонимом «j», который будет работать, но он почти бесполезен. Здесь отличное место для начала. http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –
Посмотрите на '' GROUP BY GROUPING SETS' (https: // technet.microsoft.com/en-us/library/bb510427(v=sql.105).aspx), это позволяет вам агрегировать на нескольких уровнях в одном запросе. – xQbert