如何对组进行求和并在单独的列中提供总计?

我有一段时间看着这个问题,但我知道我可以在LINQ中做到这一点。我开始考虑可以扩展的解决方案,如果这是一个变化大的数据集。我正在使用SQL构建我的经验,并相信有一种方法可以在不执行插入的情况下获得结果。 我所拥有的是看起来像这样的数据:
ids type    total
A01 x   1
A01 x   2
A01 x   3
A01 y   4
B01 y   2
B01 x   3
B01 y   1
C01 x   1
C01 y   2
C01 x   5
C01 y   6
我想要的是看起来像这样的数据:
id  x total y total
A01 6   4
B01 3   3
C01 6   8
我的信仰错了吗?     
已邀请:
  ...
  SUM(CASE type WHEN'x' THEN total ELSE 0 END),
  SUM(CASE type WHEN 'y' THEN total ELSE 0 END)
   ...
  Group by
      Id
很抱歉很难在手机上给出完整的答案     
这称为数据透视表,有许多方法可以实现它。 如果您使用的是SQL Server 2005或更高版本,则
PIVOT
运算符(MSDN)是一个很好的选项:
select id, [x], [y]
from temp d
  PIVOT ( sum(total) for type in ([x],[y]) ) p
    

要回复问题请先登录注册