SQL结果中的交叉表数据

时间:2016-11-07 03:49:23

标签: sql sql-server database crosstab

我的数据库上有这种数据。

enter image description here

我需要显示这样的结果:

enter image description here

使用水晶报告这是可行的。希望有人可以帮我写一个查询。

1 个答案:

答案 0 :(得分:0)

这不是您通常使用SQL做的事情,更好地在应用程序中实现。但如果你想这样做,你可以这样做:

SELECT Item,
    [01/01/2016 - Unique Emp ID] = Count(Distinct iif([Date] = Convert(date, '01-01-2016', [Emp ID], NULL)),
    [01/01/2016 - Sum Qty] = Sum(iif([Date] = Convert(date, '01-01'2016', [Qty Bought], NULL)),
    [02/01/2016 - Unique Emp ID] = Count(Distinct iif([Date] = Convert(date, '02-01-2016', [Emp ID], NULL)),
    ...
  FROM MyTable;

这里的缺点是列标题是固定的。这就是你应该在应用程序中执行此操作的原因。