【问题标题】:How do I achieve Pivot in SQL Server Compact Edition?如何在 SQL Server Compact Edition 中实现 Pivot?
【发布时间】:2015-07-28 15:14:13
【问题描述】:

我正在尝试在 SQL Server Compact Edition 3.5 中使用数据透视,但由于 Compact 版本不支持数据透视,我该怎么做?

表:Donate

    | Name  | Date            | Amount |
    | James | 27/7/2015 20:19 | 500    |
    | Owen  | 27/7/2015 20:20 | 400    |
    | James | 27/7/2015 20:21 | 100    |

因此,通过以下查询,我可以毫无问题地进行旋转

select *
from
    (select Name, datename(month, Date) as mname, Amount
     from Donate) as test
pivot(
    sum(Amount)
    for mname in ([July])
) as pvt

得到这个是完美的

    | Name  | July |
    | James | 600  |
    | Owen  | 400  |

但是当我使用的代码是 SQL Server 精简版时,它给了我一个错误,即没有数据透视函数。所以我研究了一个解决方案,发现 SQL Server CE 中不存在枢轴。

那么有人知道我如何在 SQL Server Compact Editions 中做到这一点吗?提前致谢

【问题讨论】:

  • 我假设您需要单独的列用于不同的月份.. 就像一月份的日期一样,那么您希望将它放在一月份的列中。对吗?

标签: sql-server sql-server-ce


【解决方案1】:

这行得通吗?

Select name,
sum(case datename(month, Date) when 'January' then Amount else 0 end) as Jan,
sum(case datename(month, Date) when  'February' then Amount else 0 end) as Feb,
...
...
From Donate
group by name

【讨论】:

  • 非常感谢 hashbrown,这非常有效,我确实尝试使用 group by,但我没有尝试使用案例,这就是为什么我没有出来正确的原因。但是非常感谢你提供这个很棒的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多