0
这是我的SQL查询 - 在Access中使用。它提供了期望的结果。 但只是想通过这种方法是否正确。 这怎么能加速。SQL Query中的改进 - 访问 - 加入/ IN /存在
SELECT INVDETAILS2.F5
, INVDETAILS2.F16
, ExpectedResult.DLID
, ExpectedResult.NumRows
FROM INVDETAILS2
INNER
JOIN (INVDL INNER JOIN ExpectedResult ON INVDL.DLID =ExpectedResult.DLID)
ON (INVDETAILS2.F14 = ROUND(ExpectedResult.Total))
AND (INVDETAILS2.F1 = INVDL.RegionCode)
WHERE INVDETAILS2.F29 ='2013-03-06'
AND INVDETAILS2.F5 IN (SELECT INVDETAILS2.F5
FROM (ExpectedResult
INNER JOIN INVDL
ON ExpectedResult.DLID = INVDL.DLID)
INNER JOIN INVDETAILS2
ON INVDL.RegionCode = INVDETAILS2.F1
AND round(ExpectedResult.Total)
= INVDETAILS2.F14
WHERE INVDETAILS2.F29='2013-03-06'
GROUP BY INVDETAILS2.F5
HAVING Count(ExpectedResult.DLID)<2
)
;
大约在 “ExpectedResult” 行数 - 数以百万计 “INVDL” - 80000 “INVDETAILS” - 300000 - 总,一个日期 - 约 - 10,000,然后每日期每个区域又较小。
如果可能,请提供更好的查询。
谢谢。第一次选择加入和第二次加入的条件是相同的。那为什么想知道是否应该/可以做什么。 – arcotenterprises 2013-03-25 21:37:09