2012-05-10 118 views
0

我有一個包含客戶賬戶的電子表格,當我們得到一個新賬戶時,它會被添加到使用參考賬戶號碼上,例如Anderson Electrical將是AND01等。我試圖使用sql從每個字母變體中帶回最高數字,例如如果AND01已經存在並且我們公司的最高價值是AND34,那麼它將僅帶回AND34而不是1到34.sql中返回多個最大值在一列中

每個帳戶都有公司名稱的前3個字母,後面跟着下一個數字。

希望我已經解釋了這口井enouh有人理解:)

回答

0

不知道如果這就是你在問什麼,但如果你需要找到最大值爲字符串的一部分,您可以用子做。

;WITH tmp AS(
    SELECT 'AND01' AS Tmp 
    UNION ALL 
    SELECT 'AND34' 
) SELECT MAX(SUBSTRING(tmp, 4, 2)) FROM tmp GROUP BY SUBSTRING(tmp, 0, 3) 

這是一個小測試查詢,返回34,因爲我的前3個字母分組,你可能想:所以,如果你需要找到包含這些值的列數最高,你可以用做按某個ID分組。

1

對於單參考客戶:

select max(AcctNum) 
from Accounts 
where left(AcctNum, 3) = <reference account> 

如果你想爲所有一次:

select left(AcctNum, 3) as ReferenceAcct, max(AcctNum) 
from Accounts 
group by left(AcctNum, 3)