0

我有一个包含客户帐户的电子表格,当我们获得一个新帐户时,它会使用参考帐号添加,即安德森电气将是 AND01 等。我正在尝试使用 sql 从每个字母变体中带回最高数字,例如如果 AND01 已经存在并且我们的最高公司价值是 AND34,那么它只会带回 AND34 而不是 1 到 34。

每个帐户都有公司名称的前 3 个字母,后跟下一个数字。

希望我已经很好地解释了这一点,以便有人理解:)

4

2 回答 2

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)
于 2012-05-10T13:36:16.193 回答
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 分组。

于 2012-05-10T10:23:26.210 回答