2015-06-15 61 views
1

我在ACCESS 2010中使用以下代碼來從表中排列〜30000行。然而,排名需要大約15分鐘(我必須再做5列,而且可能需要一個多小時)。我需要這些列進行進一步處理,因此嘗試創建一個新表。我也嘗試追加和更新現有的表格。一切都需要同一時間。我在這裏錯過了一些明顯的東西,可以讓它工作得更快嗎?在MasterTable使排名查詢有效

SELECT MasterTable.Sales, (SELECT Count(*)+1 as HowMany From MasterTable AS Dupe WHERE Dupe.Sales > MasterTable.Sales) AS SalesRank INTO tableRank FROM MasterTable;

詳情: 11列。 1個主鍵(文本)。 5參數(SalesSalesQtyProfitHitsCost,全部數字)。 5個參數的排名(如SalesRank等) 30,000行

+0

你能說清楚'Rank'是什麼意思嗎? – Newd

+0

以「排名」來說,我的意思是通過最高排名創建1列(最高銷售額)的新專欄。 –

+0

你能發佈關於你的'MasterTable'的基本信息嗎? – Newd

回答

0

您是否嘗試使用分組的左連接?

SELECT 
    m1.Sales, 
    COUNT(*) AS HowMany 
FROM 
    MasterTable AS m1 
    LEFT JOIN MasterTable m2 ON m1.Sales <= m2.Sales 
GROUP BY 
    m1.Sales 
+0

它比原始代碼花費更多時間運行。無論如何,謝謝你。 –

+0

定期加入也會起作用。不應該花15分鐘 – JamieD77