根据列A的不同前缀选择列B的总和

时间:2014-08-05 14:43:39

标签: sql sql-server-2008

我试图获取“数量”列的总和,其中“帐户”列的前3个字符是不同的。 这就是我想要达到的目标:

111total   222total   333total
30         10         50

...等

以下是我的数据的示例:

Account        Quantity
111000000      12
111000001      15
111000002      3
222000001      5
222000002      5
333000001      10
333000002      20
333000003      20 

假设帐户列表有太多不同的值来单独定义每个值,如:

SUM(table.Quantity) as 111total,
SUM(table.Quantity) as 222total, 
SUM(table.Quantity) as 333total

等,正确的语法是什么;我在合并后一部分时遇到问题,我必须用我的LEFT定义DISTINCT(Account,3)。我尝试了一些变化,但不知道如何定义第一部分阻碍了我测试后者的能力。

2 个答案:

答案 0 :(得分:3)

使用group by子句而不是DISTINCT

SELECT LEFT(Account,3) AccountPrefix, SUM(qty) sumOfQty 
FROM myTable
GROUP BY LEFT(Account,3)

答案 1 :(得分:3)

我相信这会给你你想要的东西:

SELECT LEFT(Account,3) as AccountPrefix, SUM(Quantity) AS total
FROM Table
GROUP BY LEFT(Account,3)