员工表中的当前数据
id | empid | sal_type | 工资 |
---|---|---|---|
4 | 2 | var | 9000 |
3 | 2 | 固定 | 5000 |
2 | 1 | var | 6000 |
1 | 1 | 固定 | 10000 |
我需要如下输出
empid | 已修复 | VAR |
---|---|---|
1 | 10000 | 6000 |
2 | 5000 | 9000 |
我尝试构建选择查询,但没有得到预期的输出
一种简单的方法是使用条件聚合。您也可以使用 PIVOT,但我发现从语法角度来看这要简单得多。
select empid
, Fixed = max(case when sal_type = 'fixed' then salary end)
, [var] = max(case when sal_type = 'var' then salary end)
from YourTable
group by empid