我在输入中得到了很多代码,这段代码有一个父级
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/