我希望这个查询能够告诉我 2013 年支出前 10 名的公司在 2012 年的支出情况!
SELECT [Company],
Sum([SPENDING])
FROM [Data]
WHERE [Company] IN (
SELECT TOP 10 [Company]
FROM [Data]
WHERE [Year] IN ("2013")
GROUP BY Company
ORDER BY Sum([SPENDING]) DESC
)
AND [Year] IN ("2012")
GROUP BY Company
;
当我尝试运行它时,没有收到任何错误,但 Access 说它正在“运行查询”并且永远不会完成。数据的大小不是问题。
这是我发现的最接近的例子,但它并没有真正给出答案:MS Access - WHERE IN 有效,但 WHERE NOT IN 失败 https://stackoverflow.com/questions/12376816/ms-access-where-in-works-but-where-not-in-fails
我怀疑这只是 Access 优化器的限制。尝试这样代替:
SELECT d.[Company],
Sum(d.[SPENDING])
FROM [Data] As d
INNER JOIN (
SELECT TOP 10 [Company]
FROM [Data]
WHERE [Year] IN ("2013")
GROUP BY Company
ORDER BY Sum([SPENDING]) DESC
) As t ON t.Company = d.Company
WHERE d.[Year] IN ("2012")
GROUP BY d.Company
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)