【发布时间】:2010-09-06 23:06:40
【问题描述】:
这里是 SQL 新手 :)
如果有人感兴趣,这是我的桌子。
啊哈,还不能发图 http://img832.imageshack.us/img832/442/72098588.jpg
我要做的是在日期间隔内查询 tblPatientStats 表(@StartDate,@EndDate) 并将它们相应地分组在winforms的数据网格中。
所以 tblPatientStats 中的每一行要么有一个 RefDoctor 或 RefMode,要么两者都有,或者根本没有。
所以查询应该返回一个表,其中包含来自 tblPatient 的患者姓名、来自 tblRefMode 的 RefMode、来自 tblPatientStats 的 RefDoctor 的名称(Title + FirstName + lastName)和 SessionDate
==> yfrog dot com/0yhi2dj
这是我目前的尝试。
INSERT @Final(Name, Doctor, Mode, SessionDate)
SELECT DISTINCT (FirstNames + LastName) as Name,
(tblRefDoctor.RefDTitle + ' ' + tblRefDoctor.RefDFNames + ' ' + tblRefDoctor.RefDName) AS Doctor,
tblRefMode.RefMode AS Mode, SessionDate
FROM tblPatientStats, tblPatient
left outer join tblRefDoctor on (RefDoctor = tblRefDoctor.RefDoctor)
left outer join tblRefMode on (RefModeID = tblRefMode.RefModeID)
WHERE
tblPatientStats.RefDoctor IS NOT NULL or tblPatientStats.RefModeID IS NOT NULL
AND
tblPatient.PatientID = tblPatientStats.PatientID
AND tblPatientStats.SessionDate between @StartDate AND @EndDate
我做错了什么?每次查询超时,表很小,每个不到10K记录。
任何帮助将不胜感激。
【问题讨论】:
标签: sql sql-server database relational-database