【发布时间】:2009-08-25 20:06:10
【问题描述】:
我有一个包含 StudyId、PatientId 和 StudyStartDateTime 的表。我想绘制用户指定的两个日期之间的研究和患者总数。问题在于计算不同的值。这是查询:
SELECT
s.StudyStartDateTime,
COUNT(s.StudyId),
COUNT(s.PatientId)
FROM
dbo_Study_ViewX211_Rpt AS s
WHERE
s.StudyStartDateTime>=Forms![StudiesPatientsByDate]!txtStartDate,
s.StudyStartDateTime<=Forms![StudiesPatientsByDate]!txtEndDate
GROUP BY s.StudyStartDateTime
ORDER BY s.StudyStartDateTime;
此查询几乎可以正常工作,只是它计算具有相同 StudyId 或相同 PatientId 的行的重复项。我知道 Access 不支持 COUNT(DISTINCT...),但我在解决这个问题时遇到了很多麻烦。任何帮助将不胜感激。
【问题讨论】:
-
问题:数据是存储在 JET 表中还是传递给 SQL(打开更多选项)?
-
数据最初存储在SQL Server 2005中。出于开发目的,我已经将数据转储并导入到Access中。理想情况下,我认为无论数据源是服务器还是导入 Access 的转储,Access 接口都可以工作。