0

私は顧客アカウントを含むスプレッドシートを持っています。新しいアカウントを取得すると、参照アカウント番号を使用して追加されます。つまり、Anderson Electrical は AND01 などになります。SQL を使用して、レタリングの各バリエーションから最大の番号を取得しようとしています。 AND01 が既に存在し、会社の最高値が AND34 であった場合、1 ~ 34 ではなく AND34 が返されます。

各アカウントには、会社名の最初の 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)

最初の 3 文字でグループ化しているため、34 を返す小さなテスト クエリです。おそらく ID でグループ化する必要があります。

于 2012-05-10T10:23:26.210 に答える