【发布时间】:2019-09-26 19:08:41
【问题描述】:
我正在尝试从我的医院数据库中计算 [访问] 的总数,以便我可以使用结果从我的 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)
因此,我想获得一个查询,该查询可以列出特定日期范围内护士的总就诊次数以及该特定患者一周内所有专业人员的总就诊次数百分比。例如,护士(John)访问患者 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 |
|
以下是我的 SSMS 上的 SQL 语句,我使用案例语句作为专业数据,因为根据患者需求,有时治疗师会访问而不是护士/医生,所以我希望这部分是动态的:
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]
我知道我的查询不正确,需要改进,如果有人可以帮助我获取数据,那就太好了。
提前致谢。
【问题讨论】:
-
请描述当前查询的不良结果或任何错误。如果查询返回您的所需结果,则查询是正确的。
标签: sql tsql date percentage case-when