假定我们现在有一个员工销售业绩表,如图所示:
一个有趣的Sql查询
现在因为某种需要,要做一个如下格式的报表:
一个有趣的Sql查询
但问题的关键是:对于一个员工来说,可能同时有2005年和2006年的销售额,但也可能只有2005年或只有2006年的销售额,这个Sql查询应如何生成呢?
用full outer jion或许是一个选择,但合并employeeId列也是一个不小的麻烦,以下是我用另一种方法写的一个Sql查询语句:
一个有趣的Sql查询select employeeId,sum(sale2005) as sale2005,sum(sale2006) as sale2006  from
一个有趣的Sql查询(
一个有趣的Sql查询(
select employeeId,sale as sale2005,null as sale2006 from sale where years=2005)
一个有趣的Sql查询
union
一个有趣的Sql查询(
select employeeId,null as sale2005,sale as sale2006 from sale where years=2006)
一个有趣的Sql查询) tmp
一个有趣的Sql查询
group by employeeId
功能是实现了,但总感觉不够爽。不知大家有没有高招,希望贡献出来大家一起学习。

相关文章:

  • 2021-09-19
  • 2021-08-26
  • 2022-02-22
  • 2022-12-23
  • 2021-12-26
  • 2021-11-13
  • 2021-11-29
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
  • 2021-05-21
  • 2022-12-23
  • 2021-12-15
相关资源
相似解决方案