SQL - Count()问题

And*_*ton 2 sql t-sql sql-server

我有一张收费/信用栏目表:

Item | PriceVal | CostVal | CHARGE_CODE
1        5             3         CH
2        8             5         CH
1       -5            -3         CR
3        7             1         CH
4       15            10         CH
1        5             3         CH
Run Code Online (Sandbox Code Playgroud)

我已经得到了我需要获得NET价格和成本的查询,但我也对NET收费感兴趣.现在我有:

SELECT Item, SUM(PriceVal), SUM(CostVal)
FROM Table
GROUP BY Item
Run Code Online (Sandbox Code Playgroud)

如何获取具有该值的另一​​列

COUNT(SUM(CHARGE_CODE=CH)-SUM(CHARGE_CODE=CR))
Run Code Online (Sandbox Code Playgroud)

我不知所措.

Rya*_*ill 8

count()将为每个不为null的值计数一个,所以我不认为这正是你想要的.把数数拿出去,然后拿走

sum(case when charge_code = CH then costval else 0 end) 
- sum(case when charge_code = 'CR' then costval else 0 end)
Run Code Online (Sandbox Code Playgroud)