如何根据其他字段值总结字段?

Aym*_*ric 5 sql sql-server

我正在SQL Server 2008上开发一个小的存储过程.我对SQL查询知之甚少,但足以实现简单的任务.但是我想出了一个我无法解决的问题.在我开始解释我的问题之前,请原谅我,如果我拼写SQL查询字错了,因为我不是英语母语人士.

我有4个字段(CSV表示):

ID, NAME, VALUES, ANSWER
25, Tom , 2400 , 0                
25, Tom , 600 , 0                
25, Tom , 500 , 1                
25, Tom , 300 , 1                
27, Jerry, 100, 0                
27, Jerry, 20, 1                
27, Jerry, 60, 1                
27, Jerry, 2000, 0     
Run Code Online (Sandbox Code Playgroud)

我想要做的是按照它的选择进行分组,IDNAME在名为positive when ANSWER = 1和的字段中汇总它的值negative when ANSWER = 0.

ID, NAME, SUM, NEGATIVE, POSITIVE
25, Tom, 3000, 800                   
27, Jerry, 2100, 80
Run Code Online (Sandbox Code Playgroud)

我猜我的问题已被问过几次,但我无法找到任何关于它的信息,可能是因为我使用的是错误的条款.无论如何,如果有人可以提供帮助,那将节省我很多时间.

Wil*_*ler 4

您将使用 CASE 语句来完成此操作。

select Id
        , Name
        , SUM(case when answer = 1 then Values else 0 end) as Positive
        , SUM(case when answer = 0 then Values else 0 end) as Negative
    from MyTable
    group by Id
        , Name
Run Code Online (Sandbox Code Playgroud)