sql - sql查询中如何对一个字段中的多个字段求和?

标签 sql sql-server

我在输入中得到了很多代码,这段代码有一个父级

SELECT [fromAccCode]= 
CASE WHEN [fromAccCode] IN (201010, 201020, 201442, 201521, 201611,201612,209050,
209060,209090,209110,213040,213163,213165,213166,213190) THEN r1
WHEN [fromAccCode] IN (201040, 201048, 201050, 201090, 201120, 201150
,201155) THEN r2
WHEN [fromAccCode] IN (201443,206020,207010,207040,207100,207130,209612
) THEN r3

我用这段代码设置了输入

SELECT [fromAccCode] FROM [dbo].[source_table] WHERE ','+'201010, 
201020,259861,754265,213040,213163,213165,201040,
201048, 201050,201443,206020'+',' like '%,'+cast([fromAccCode] 
AS varchar(10))+',%'

我希望你有 3 记录 1,2,3 形式 sum 的值 (r1),值的总和(r2) 和值的总和(r3) 并且这个字段有值

最佳答案

首先:添加一个字段来设置案例数

  select  [fromAccCode], --your code
field_name=  --add this code
          CASE 
      WHEN [fromAccCode] IN (201010,201020,201442,201521,201611,201612,209050,209060,209090,209110,213040,213163,213165,213166,213190) THEN 'r1         
      WHEN [fromAccCode] IN (201040,201048,201050,201090,201120,201150,201155) THEN r2
      WHEN [fromAccCode] IN (201443,206020,207010,207040,207100,207130,209612) THEN r3     
               ELSE null
          END   

您不需要此代码段:

WHERE ',' + '201010,201020,259861,754265,213040,213163,213165,201040,201048,201050,201443,206020' + ',' 
  LIKE CONCAT('%,', [fromAccCode], ',%')

因为你有 fromAccCode 值

第二个:

 select [fromAccCode ]
  ,[field_name]
  ,sum([value])
   from #result_table  group by [fromAccCode ]
  ,[field_name]
  ,[value]

关于sql - sql查询中如何对一个字段中的多个字段求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54070260/

相关文章:

java - 如何让每个SQL查询都是一个线程?

R 中类似 SQL 的功能

sql - 插入或更新混淆

Python sqlparse 没有正确地为每一列创建新行

sql-server - 连接错误: Failed to connect to localhost:undefined in 15000ms

sql - 如何在查询中的两个列名称之间添加 'n' 个空格?

sql-server - SQL Server 在安装 witch chocolatey 时无法授权用户(通过 chef)

mysql - 为什么我的 MySQL 存储过程不循环?

c# - 理论上可以从 JSON 文档生成物理数据库模式吗?

返回更新记录的 SQL Server 存储过程