Я пытаюсь рассчитать общее количество [посещений] из моей базы данных больницы, чтобы я мог использовать результат для чтения из моего скрипта Python и еженедельной рассылки нашей команде. Поэтому мне интересно, может ли кто-нибудь помочь мне с моим запросом, так как я все еще изучаю SQL.
Goal Table format:
- Date (prefer dd/mm/yyyy)
- Patient_Name (e.g John)
- Patient_Id (e.g 12345)
- Visits
- Professionals (Categorical Variables: Nurse, Doctor, Assistant Nurse)
Итак, я хочу получить запрос, в котором можно перечислить общее количество посещений медсестры в конкретном диапазоне дат и процент от общего числа посещений всех специалистов для конкретного пациента за неделю. Например, медсестра посещает пациента (Джон) 15 раз, а помощница медсестры - 10 раз, в то время как доктор оплачивает визиты 5 раз в неделю, поэтому мой финальный стол будет таким:
____________________________________________
|____Date_____|__Prof__|__Visits_|___Percen__|
|06/01/2018 | Nurse | 15 | 0.5 |
|02/11/2017 | A-Nurse| 10 | 0.33 |
|19/04/2016 | Nurse | 5 | 0.16 |
|
Ниже приведен мой оператор SQL для моей SSMS, и я использовал регистр для данных Professionals, поскольку в зависимости от потребностей пациента иногда посещают терапевты вместо медсестры / врача, поэтому я хотел бы, чтобы эта часть была динамичной:
SELECT CONVERT(VARCHAR(10), [myDate], 101), SUM([visits]) AS [Date] , [Professionals], ((SELECT [Visits] from MyHospitalTable)* 100 / (Select SUM([Visits]) From MyHospitalTable)) as Percen
FROM
(SELECT
Count(*) as [total],
[Date] as [myDate],
[Patient_id] as [myPatient_Id],
[Patient_Name] as [myPatient_Name],
[visits] as [visits],
CASE
WHEN [Professionals] LIKE '%Nurse%' THEN 'Nurse'
WHEN [Professionals] LIKE '%Therapist%' THEN 'Therapy'
else 'Unknown'
END AS [Professionals]
FROM [MyHospitalTable]
) a
GROUP BY [myDate]
Я понимаю, что мой запрос неверен и нуждается в улучшении, и если кто-нибудь может помочь мне с получением данных, это было бы здорово.
Заранее спасибо.