下面的查询工作在MS Access,但它并没有在MS SQL Server的工作:“附近关键字‘组’语法错误”为什么在MS Access中工作的SQL查询不能在SQL Server中工作?
SELECT
tblSession.PatientID as PID,
max(tblSession.SessionAttend) -
min(tblSession.SessionAttend) + 1 as NumSA,
max(tblSession.SessionSched) -
min(tblSession.SessionSched) + 1 as NumSS FROM
(
SELECT top 100 percent
tblSession.PatientID,
tblSession.SessionNumber,
tblSession.SessionDate,
tblSession.SessionAttend,
tblSession.SessionSched FROM
tblPatient INNER JOIN tblSession ON
tblPatient.PatientID = tblSession.PatientID) WHERE
(tblSession.SessionDate >= '12/8/2010') AND
(tblSession.SessionDate <= '5/18/2011') AND
(tblSession.Status = '2') ORDER BY
tblSession.PatientID, tblSession.SessionNumber
) GROUP BY tblSession.PatientID
在SQL Server,它给人的错误当我将鼠标悬停在GROUP关键字上时,工具提示显示“GROUP”附近的语法错误,期望AS,ID或QUOTED_ID。“我不明白。任何人都可以告诉我如何使这个查询工作?
你需要一个别名,由t.PatientId子查询'从(...)T组' – dotjoe 2012-03-12 18:37:19
我相信你嵌套SELECT需要一个别名。因此最后一行“)GROUP BY tblSession.PatientID”需要类似于“)AS tbl GROUP BY tblSession.PatientID”。我可能是错的... – 2012-03-12 18:42:14
无奈的问题,但为什么你有'最高百分之一百'? – 2012-03-12 18:48:29