【发布时间】:2018-05-26 12:29:01
【问题描述】:
我需要在动态 PIVOT 中转换 SELECT (image here),其中可以有任何表单名称,并且每个表单可以有不同的输入名称和数量。
我已经完成了根据表单中输入的最大数量设置列的脚本。但我不知道之后如何处理。
DECLARE @ColumnName AS NVARCHAR(MAX);
DECLARE @i INT = 1;
DECLARE @max int =
(SELECT
MAX(y.qtd)
FROM (SELECT TOP 10
frm_Form,
frm_Name,
COUNT(inp_Input) AS qtd
FROM orb_Forms
INNER JOIN orb_FormInputs
ON frm_Form = fri_Form
INNER JOIN orb_Inputs
ON fri_Input = inp_Input
WHERE frm_Operation = 1
AND frm_Enabled = 1
AND fri_Enabled = 1
AND inp_Enabled = 1
GROUP BY frm_Form,frm_name
ORDER BY frm_Form desc) y)
WHILE (@i <= @max)
BEGIN
select @ColumnName = ISNULL(@ColumnName + ',','') + QUOTENAME('Input' + CAST(@i as nvarchar));
SET @i = @i + 1;
END
结果:[输入 1]、[输入 2]、[输入 3]、[输入 4]、[输入 5]、[输入 6]、[输入 7]、[输入 8]、[输入 9]、 [输入 10],[输入 11]
【问题讨论】:
标签: sql-server forms dynamic pivot