我有以下数据以及我正在处理的其他一些其他表。
id ClinicId MonthsInOperation Budget Revenue
1 1232 12 2000
2 1534 8 3500
3 1767 10 2500
4 1232 13 3000
5 1534 2 4000
我最终需要生成的是(表格结构):
ClinicInfo(Static Columns) + Selected Month------------->> End of Year(Dynamic Columns)
Dynamic Columns
将包含特定月份的预算信息(例如Table structure + Data
):
ClinicInfo(Static Columns) + Feb 2013-------------------->> December 2013
-------------------------- 2000+-------+-------------------+ 4500
我之前没有使用PIVOT,不确定这是否是我需要的。
答案 0 :(得分:1)
直接从SQL Server生成这样的报告很难。 PIVOT的问题在于它只适用于静态列集。如果您希望输出列是动态的,PIVOT(在SQL中)将无法帮助您。
我还假设您有一些其他表格,其中包含每个诊所每月分解的预算信息。
老实说,使用标题/详细信息类型布局在某种类型的报告解决方案(Active Reports,SSRS,Crystal)中执行此操作可能是最简单的方法。或者在一些非SQL中间层(Java,.NET等)中构建它,因为这样你就可以从不同的数据片段(基本的诊所信息,范围的月份,那些月的数据)中将它拼凑在一起。您可以在原始TSQL中执行此操作,但根据我的经验,可重复的性能最为粗略。
可能不是你想要的答案,但希望能给你一些想法。