Vous ne dites pas dialecte particulier de SQL
SELECT LEFT(Acct#,3), SUM(Amount)
FROM yourTable
GROUP BY LEFT(Acct#,3)
Ou pour gérer arbitrar y longueur des numéros de compte
SELECT
CASE
WHEN Acct# LIKE '%T'
THEN SUBSTRING(Acct#,1,LEN(@Acct)-1)
ELSE Acct#
END,
SUM(Amount)
FROM yourTable
GROUP BY
CASE
WHEN Acct# LIKE '%T'
THEN SUBSTRING(Acct#,1,LEN(@Acct)-1)
ELSE Acct#
END
Ou une approche plus générique qui traitera les correspondances arbitraires pourrait être de construire une table de correspondance que vous pouvez rejoindre sur. Il y a beaucoup d'informations manquantes ici concernant les règles qui doivent être appliquées!
SELECT d.b, SUM(yt.Amount)
FROM yourTable yt
join (
SELECT '123' as a, '123' as b UNION ALL
SELECT '123T' as a, '123' as b UNION ALL
SELECT '124' as a, '124' as b UNION ALL
SELECT '124T' as a, '124' as b UNION ALL
SELECT '125' as a, '125' as b UNION ALL
SELECT '125T' as a, '125' as b
) d ON d.a = yt.Acct#
GROUP BY d.b
qui 'RDBMS' utilisez-vous? Comment voulez-vous regrouper les comptes: jetez tout après le troisième personnage; jeter tous les caractères non numériques, d'une autre manière? – Quassnoi