【发布时间】:2013-07-02 10:28:47
【问题描述】:
我需要动态选择的值是日期,因此会发生变化(即每周或每月)。我想知道如何使用 TSQL (SQL Server 2008) 中的“EXEC”函数来做到这一点
Table Regis 有 4 列,数据类似这样(有 90k 行):
Holder Period State Ttl
Dell 2011-12-31 CA 5
Dell 2012-01-31 PA 7
Sony 2011-11-30 TX 8
Sony 2013-02-28 FL 20
总计是该州在该日期结束的月份的总“销售额”。该销售数据跨越 14 个月。但是,它可能会增长到 20 个月。此外,日期会随着时间的推移而改变,因为它是滚动月份。我只想获得州总交易,以“期间”为列。
我知道删除 Holder 并将 Group by 与 SUM 一起使用,将横向执行此操作。我也知道,通过了解所有时期,我可以使用枢轴。但是,我希望将 Period 作为列,并希望通过动态 SQL 来做到这一点,因为我需要学习动态 SQL 来做其他事情。感谢您的帮助。
最终结果应该是这样的
state 2011-11-30 2011-12-31... 2013-02-28
CA 100 205 78
WA 90 159 62
CO 16 654 31
TX 87 321 205
NY 54 45 415
【问题讨论】:
标签: tsql sql-server-2008-r2 dynamic-sql