【问题标题】:PIVOT table for account data with columns for each month包含每个月列的帐户数据的 PIVOT 表
【发布时间】:2014-02-05 11:09:03
【问题描述】:

我正在查看的表格包含以下列:

department_number, amount, date_created.

我正在尝试创建一个表格,显示 2013 年每个月每个部门的总金额,所以它看起来像这样:

Department_number, Jan Amount, Feb Amount, March Amt, etc....

这是数据透视表的情况,还是我应该每个月运行不同的查询并加入它们?

【问题讨论】:

  • 必须在 sql 中完成,像 excle 这样的工具可以“链接”到数据并为您旋转。

标签: sql tsql sql-server-2005 pivot


【解决方案1】:

您的案例肯定适合使用 PIVOT 表语法。下面是一个简单的查询。

SELECT Department_number
,[January]
,[February]
,[March]
FROM (
SELECT Department_number, Amount, datename(date_created) AS month_created from <Your_Table>
) AS SOURCETABLE
PIVOT(SUM([Amount]) FOR month_created IN ([January],[February],[March])) AS PIVOTTABLE

此查询假定您的表中有包含值 Jan、Feb、March 的 date_created 列。如果需要,您可以添加更多月份。

更多关于这个主题 - http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

【讨论】:

  • 如果 date_created 是 datetime 数据类型怎么办?我可以使用月份(date_created)吗?
  • 非常感谢,我能够让它工作。
【解决方案2】:

如果您想在 SSRS 报告中显示此内容,请进行行和列分组并聚合数量,否则您可以将数据透视表与 TSQL 一起使用:How to pivot table with T-SQL?

【讨论】:

  • 这更像是一个评论而不是一个答案。
猜你喜欢
  • 1970-01-01
  • 2022-10-04
  • 1970-01-01
  • 2015-05-20
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
相关资源
最近更新 更多