SUM值根据另一列的Text值视为POS或NEG

时间:2017-09-29 14:27:05

标签: sql sql-server oracle

我正在使用SQL Server Managment Studio。我正在尝试使用CASE条件的SUM“Amount”列,如果我的DCIP列值= D,则将“Amount”视为正整数ELSE,如果DCIP值= C则将“Amount”视为负整数。以净额结束

DCIP    Amount  Name
-----------------------
C   100 Jack
C   100 Jack
D   300 Freddie
D   50  Jack
D   25  Freddie
C   100 Freddie

我按名称分组,应返回以下结果:

Net Amount Name
---------------
-150       Jack
225.       Freddie

2 个答案:

答案 0 :(得分:1)

我想你想:

select
Amount *
CASE DCIP
    WHEN 'D' THEN 1 
    ELSE -1
END 
from table

然后取一个这样的表达式和用户分组

select
sum(Amount *
CASE DCIP
    WHEN 'D' THEN 1 
    ELSE -1
END)
from table
group by name

答案 1 :(得分:0)

使用条件聚合

transform(event) {
  // Multiply by 1 to transform to number
  this.salary = event.value * 1;
}