2016-11-13 98 views
0

我有了這樣的數據表下一頁Lower號:查找基於其他領域訪問

MainID, MainNumber, MainType 
1  250   Hours 
2  500   Hours 
3  1000  Hours 
4  5000  Miles 
5  20000  Miles 

當我把值的MainNumber和MainType,我需要拉動下一個較低MainType的MainNumber。

這是我的代碼:

SQL = "SELECT T2.MainID, Max([t2.MainNumber]) AS PreviousCycle" 
SQL = SQL & " FROM tblMainType AS T1 LEFT JOIN tblMainType as T2 on T1.MainNumber > T2.MainNumber" 
SQL = SQL & " WHERE T1.mainType = '" & mType & "' AND T1.MainNumber = " & MainNumber 
SQL = SQL & " Group By T2.MainID;" 

奇怪的是它的工作好幾個小時,但不哩?我的代碼有什麼問題?

+0

「不工作」並沒有給我們很多工作。 – Gustav

回答

0

要找到下一個最高的數字,我會採取降序排列字段並採取TOP 1值。

Sql = "SELECT TOP 1 tblMainType.MainID, tblMainType.MainNumber " & _ 
     "FROM tblMainType " & _ 
     "WHERE (((tblMainType.MainNumber)< " & mType & ") AND ((tblMainType.MainType)='" & MainNumber & "')) " & _ 
     "ORDER BY tblMainType.MainNumber DESC;" 
0

我希望查詢是這樣的:

SELECT TOP 1 MainID, MainNumber 
FROM tblMainType 
WHERE MainType = @MainType AND 
     MainNumber >= @MainNumber 
ORDER BY MainNumber DESC, MainId; 

@MainType@MainNumber是你輸入的值。