Sql 具有每个月列的帐户数据透视表

Sql 具有每个月列的帐户数据透视表,sql,tsql,sql-server-2005,pivot,Sql,Tsql,Sql Server 2005,Pivot,我正在查看的表包含以下列: department_number, amount, date_created. 我试图创建一个表格,显示2013年每个部门每个月的总金额,所以它看起来是这样的: Department_number, Jan Amount, Feb Amount, March Amt, etc.... 这是pivot表的情况,还是我应该每月运行一个不同的查询并加入它们?如果您想在SSRS报告中显示这一点,请进行行和列分组并聚合金额,否则您可以将pivot表与TSQL一起使用:您的

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

department_number, amount, date_created.
我试图创建一个表格,显示2013年每个部门每个月的总金额,所以它看起来是这样的:

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

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

如果您想在SSRS报告中显示这一点,请进行行和列分组并聚合金额,否则您可以将pivot表与TSQL一起使用:

您的案例肯定适合使用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_列。如果需要,您可以再增加几个月


关于主题的更多信息-

必须用sql完成,像excle这样的工具可以“链接”到数据并为您提供数据透视。这更多的是一个注释,而不是一个答案。如果创建的日期是一个日期时间数据类型怎么办?我可以使用月(创建的日期)吗?非常感谢,我可以让它工作。