【问题标题】:tSQL how to write a view/function which returns a table of dynamic sizetSQL如何编写一个返回动态大小表的视图/函数
【发布时间】:2013-07-23 15:52:21
【问题描述】:

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

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

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

例如

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

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

最好的方法是什么?

【问题讨论】:

    标签: sql tsql date dynamic


    【解决方案1】:

    如果您必须在报告中使用此输出。比你必须在 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
    

    【讨论】:

    • 感谢回复!我可能会使用它,但我需要从 x 年到当前年份的完整列表,这意味着表大小可变。我决定通过将代码制作成一个存储过程来解决这个问题,然后每天一次从这个过程中删除并重新生成一个表(我正在处理的数据不会经常更改,所以没什么大不了的)。跨度>
    • 如果您使用的是水晶报表,那么您也可以使用交叉表报表。
    猜你喜欢
    • 2021-04-20
    • 1970-01-01
    • 2012-12-25
    • 2021-12-28
    • 2011-01-19
    • 1970-01-01
    • 2021-05-08
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多