一个有趣的Sql查询

假定我们现在有一个员工销售业绩表,如图所示:

现在因为某种需要,要做一个如下格式的报表:

但问题的关键是:对于一个员工来说,可能同时有2005年和2006年的销售额,但也可能只有2005年或只有2006年的销售额,这个Sql查询应如何生成呢?
用full outer jion或许是一个选择,但合并employeeId列也是一个不小的麻烦,以下是我用另一种方法写的一个Sql查询语句:
select employeeId,sum(sale2005) as sale2005,sum(sale2006) as sale2006  from
(
(
select employeeId,sale as sale2005,null as sale2006 from sale where years=2005)
union
(
select employeeId,null as sale2005,sale as sale2006 from sale where years=2006)
) tmp
group by employeeId
功能是实现了,但总感觉不够爽。不知大家有没有高招,希望贡献出来大家一起学习。
原文地址:https://www.cnblogs.com/chinadhf/p/343150.html