我想通过这个查询告诉我,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表示它是“正在运行的查询”,并且永远不会完成。数据的大小不是问题。
我怀疑这只是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