【问题标题】:Crosstab data in SQL resultsSQL 结果中的交叉表数据
【发布时间】:2017-03-20 08:18:38
【问题描述】:

我在我的数据库中获得了这种数据。

我需要显示这样的结果:

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

【问题讨论】:

  • 是否只有 3 天的数据,或者天数可以变化?
  • 这是一个仅显示3天作为样本的变量。
  • 您正在寻找一种称为数据透视查询的东西,但在您的情况下它可能必须是动态的。
  • 抛出样本数据。没有图像。

标签: sql sql-server database crosstab


【解决方案1】:

这不是您通常使用 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;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多