【发布时间】:2017-04-01 15:49:59
【问题描述】:
嗨,我已经尝试解决这个问题两天了。上面的错误信息:
Msg 164, Level 15, State 1, Line 21 每个 GROUP BY 表达式必须 至少包含一列不是外部引用。
我要做什么:每个患者的住院总处方(患者记录记录),列出第一个、最后一个、患者记录的开始和结束日期(每次住院)以及处方总数
我在网上搜索过,stackoverflow 类似的问题(大多数或全部似乎都涉及变量或常量)。我很难过,真的可以使用一些帮助。我的查询不使用任何外部联接,并且我尝试从 group by 中删除除“TotalOfPresc”之外的所有列。我是初学者-请温柔。这是我的代码:
USE [BestHospitalDB];
SELECT PATIENTS.Last, PATIENTS.First,
Presc.PrescQuantity * Meds.PrescPrice As 'TotalOfPresc',
pr.SubmissionDate, pr.DischargeDate
FROM
PATIENTS AS p,
[PRESCRIPTIONS] AS Presc,
[PRESC_MEDS] AS Meds,
PATIENTS_RECORDS AS pr
INNER JOIN
PATIENTS ON pr.PatientID = PATIENTS.[PatientID]
INNER JOIN
PRESCRIPTIONS ON PRESCRIPTIONS.PatientsRecordsID = pr.PatientsRecordsID
INNER JOIN
PRESC_MEDS ON PRESCRIPTIONS.PrescPresc_MedsID = PRESC_MEDS.Presc_MedsID
GROUP BY PATIENTS.First, PATIENTS.Last, pr.SubmissionDate, pr.DischargeDate, 'TotalOfPresc'
【问题讨论】:
-
编辑您的问题并解释您要做什么。
标签: sql sql-server-2012