如何累积SQL列数据

时间:2012-02-17 04:05:09

标签: sql

我遇到了问题,我想知道我是否可以在SQL中执行此操作。

ID  ACC_NO
----------------
1   2342
2   8938
3   8089

Result 
ID  ACC_NO  ACCUM
---------------------
1   2342    11
2   8938    28
3   8089    25

我想积累ACC_NO(2 + 3 + 4 + 2 = 11)

我能做到吗?有什么选项可以在SQL中累积数据吗?

由于

2 个答案:

答案 0 :(得分:1)

是的,你可以做到。这是一种假设您的字段ACC_NO始终为四位(或更小)的方式:

SELECT ID
       ,ACC_NO
       ,FirstDigit  = (ACC_NO / 1000)       -- Included these
       ,SecondDigit = (ACC_NO % 1000) / 100 -- so you could
       ,ThirdDigit  = (ACC_NO % 100) / 10   -- see the
       ,FourthDigit = (ACC_NO % 10)         -- breakdown
       ,ACCUM       = (ACC_NO / 1000) + ((ACC_NO % 1000) / 100) + ((ACC_NO % 100) / 10) + (ACC_NO % 10)
  FROM MyTable

注意:%是模数运算符

答案 1 :(得分:0)

正如Vache所说,你应该在程序中而不是sql中求和。 虽然我给你的解决方案,期望你的号码是4位数。

SELECT ID, ACC_NO, ( SUBSTRING(ACC_NO,1,1) +SUBSTRING(ACC_NO,2,1) +SUBSTRING(ACC_NO,3,1) +SUBSTRING(ACC_NO,4,1)) as ACCUM
FROM jj_salary_info