使用Access 2003查询服务表现问题
查询
SELECT t1.PERSONID ,t1.CARDEVENTDATE
,MIN(t2.CARDEVENTTIME) AS Intime
,MAX(t3.CARDEVENTTIME) AS Outtime,
Min(t3.Cardeventtime) as BreakOut,
Max(t4.CardEventTime) as BreakIn
FROM ((( SELECT PERSONID
, CARDEVENTDATE
FROM T_CARDEVENT) as t1
LEFT OUTER JOIN (SELECT PERSONID
,CARDEVENTDATE, FUNCTION
, CARDEVENTTIME
FROM T_CARDEVENT WHERE (FUNCTION = 'A')) as t2
ON t1.PERSONID = t2.PERSONID
AND t1.CARDEVENTDATE = t2.CARDEVENTDATE) LEFT OUTER JOIN (SELECT PERSONID
,CARDEVENTDATE, FUNCTION
, CARDEVENTTIME
FROM T_CARDEVENT WHERE (FUNCTION = 'D')) as t3
ON t1.PERSONID = t3.PERSONID
AND t1.CARDEVENTDATE = t3.CARDEVENTDATE) LEFT OUTER JOIN (SELECT PERSONID
,CARDEVENTDATE, FUNCTION
, CARDEVENTTIME
FROM T_CARDEVENT WHERE (FUNCTION = 'B')) as t4
ON t1.PERSONID = t4.PERSONID
AND t1.CARDEVENTDATE = t4.CARDEVENTDATE) LEFT OUTER JOIN (SELECT PERSONID
,CARDEVENTDATE, FUNCTION
, CARDEVENTTIME
FROM T_CARDEVENT WHERE (FUNCTION = 'C')) as t5
ON t1.PERSONID = t5.PERSONID
AND t1.CARDEVENTDATE = t5.CARDEVENTDATE
GROUP BY t1.PERSONID, t1.CARDEVENTDATE
当我运行上面的查询,它正在采取太多的时间来查看结果,所以有时它是显示错误消息“还不够在内存中的临时空间“
有任何其他的方式来访问这样的查询。
需要查询帮助
我不认为你是从SQL视图中剪切和粘贴你的SQL,因为上面的查询失败了,我相当确定顶部应该在某个阶段引用t5。如果你发布真正的SQL,这将是最好的。 – Fionnuala 2010-01-11 12:43:12