我在 SQL Server 2008 中有这个表结构:
列:PersonID、DOSE1、DOSE2、DOSE3、..... DOSE12、YEAR
示例行:123、0.1、0.0、0.5、..... 0.7、2008
所以基本上我每个月都有一个专栏,然后是一个专栏年份。
这些行包含当年每个月的剂量值。
我想要的输出是:
列:PersonId、BeginDate、EndDate、剂量
BeginDate 和 EndDate 将来自 DOSEx 列和年份。所以说年份是 2008 年,DOSE1 列会给我一个 BeginDate 01/01/2008 结束 EndDate 应该是 31/01/2008 23:59
对于 DOSE4,它是四月,所以 BeginDate 应该是 01/04/2008 和 EndDate 30/04/2008 23:59
有什么方法可以使用 TSQL 实现这一点?我怀疑我应该使用 UNPIVOT,但不确定如何到达那里。
任何帮助深表感谢。
问候,
TJ