tSQL如何编写一个返回动态大小表的视图/函数

时间:2013-07-24 09:00:02

标签: sql tsql date dynamic

我最近在t-SQL中编写了一个脚本,它使用动态SQL生成表。脚本的输出因运行时间而异。输出是这样的:

Group   2010    2011   2012   2013
  A      1       2       3      2
  B      4       3       3      4
  C      4       3       1      1

但是,每年都会在表格中添加另一年,这意味着表格大小会有所不同。

e.g。

Group   2010    2011   2012   2013   2014
  A      1       2       3      2     2
  B      4       3       3      4     2
  C      4       3       1      1     3

我需要能够通过访问来访问此表中的数据以生成一些报告,因此需要某种视图或函数来获取数据。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

如果必须在报告中使用此输出。您必须在SQL中修复列名,如下所示。

Group  year4    year3    year2   year1
  A      1       2        3       2
  B      4       3        3       4
  C      4       3        1       1

在报告工具中,您可以转换year1 =当前年份,year2 =当前年份 - 1,依此类推。

更新2

使用此方法,您可以轻松设计报告。

Group   year5  year4   year3   year2   year1
  A      1       2       3       2      2
  B      4       3       3       4      2
  C      4       3       1       1      3