帮助创建SQL SELECT语句

Jam*_*mos 1 sql select

我在表格中有以下格式的数据:

Acct#    Amount
123      3.4 
123T     4.5 
124      2.3 
124T     4.5 
125      1.2 
125T     2.4 
Run Code Online (Sandbox Code Playgroud)

如何创建一个select语句,其中将帐号总计为123 + 123T并提供以下输出:

123    7.9
124    6.8
125    3.6
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 5

你没有说任何特定的SQL方言

SELECT LEFT(Acct#,3), SUM(Amount)
FROM yourTable
GROUP BY LEFT(Acct#,3)
Run Code Online (Sandbox Code Playgroud)

或者处理任意长度的帐号

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
Run Code Online (Sandbox Code Playgroud)

或者,处理任意映射的更通用的方法可能是构造一个可以随后加入的映射表.关于需要应用的规则,这里有很多缺少的信息!

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
Run Code Online (Sandbox Code Playgroud)