我试图实现这一目标:转换行到列未知号码元素
初始表:
PARM1 |PARM2 |DATE
-------------------
VALUE1|VALUE2|DATE1
VALUE3|VALUE4|DATE2
最终结果:
PARM |DATE1 |DATE2 |...
-----------------------
PARM1|VALUE1|VALUE3|...
PARM2|VALUE2|VALUE4|...
简单地说,我想我的转换参数名称放入行中并为每个日期都有一列,其中单元格包含日期和参数的参数值。
到目前为止,我设法得到这个:
SELECT *
FROM
(
SELECT [Parameter], [DATE], VALUE
FROM
(
SELECT PARM1, PARM2 FROM PARAMETER_VALUES
) SOURCE_TABLE
UNPIVOT
(
VALOR FOR [Parameter] IN (PARM1, PARM2)
) UNPIVOTED_TABLE
) T
的问题是,我不能PIVOT现在的结果,因为我不知道有多少日期有。我希望它是动态的。
可能吗?
听起来像一个EAV结构,它已经在后面咬你。基本上,数据库不是为了动态生成列而设计的。所以,如果这是你想要做的,你应该在中间层组件或报告工具的数据库之外进行。 – Thomas 2010-07-06 15:02:22
如果您发布代码,XML或固定表格结构,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010),以良好地格式化和语法突出显示它! – 2010-07-06 15:06:21