将记录3列基于记录计数在SQL Server将记录3列
我想选择从查询的记录。我有3个栏显示记录 我已经根据计数来分割记录,那就是我需要将记录分成10行,每行有 。
此外,在我有30多个记录的事件,它需要栏,显示记录1
请参考下面的屏幕截图相连。
Reg SNO Reg SNO Reg SNO 1 11 21 2 12 22 3 10 20 30 Reg SNO Reg SNO Reg SNO 31 41 51 32 42 52 33 40 50 60
记录应该像上面给出的Excel表格一样。
我试过下面的查询在一个存储过程。但看起来像我失踪一些逻辑连接,甚至奇数的功能,我已经在where Condition.If给出了大于30的记录它不是检索作为我预期。 任何帮助将非常感激。
CREATE PROC MYTEST
AS
IF OBJECT_ID('tempdb..#test1') IS NOT NULL
DROP TABLE #test1
IF OBJECT_ID('tempdb..#test2') IS NOT NULL
DROP TABLE #test2
IF OBJECT_ID('tempdb..#test3') IS NOT NULL
DROP TABLE #test3
SELECT ROW_NUMBER() OVER (ORDER BY rno) 'rno' ,
Reg ,
SerialNo
INTO #test1
FROM (SELECT ROW_NUMBER() OVER (ORDER BY EmployeeId) 'rno' ,
Reg ,
SerialNo
FROM tRe
) AS c
WHERE (rno % \10 > 0
AND (rno/10) % 3 = 0
)
OR (rno % 10 = 0
AND (rno/10) % 3 = 1
)
SELECT ROW_NUMBER() OVER (ORDER BY rno) 'rno1' ,
Reg AS Reg1 ,
SerialNo AS SerialNo1
INTO #test2
FROM (SELECT ROW_NUMBER() OVER (ORDER BY EmployeeId) 'rno' ,
Reg ,
SerialNo
FROM tRe
) AS c
WHERE (rno % 10 > 0
AND (rno/10) % 3 = 1
)
OR (rno % 10 = 0
AND (rno/10) % 3 = 0
)
SELECT ROW_NUMBER() OVER (ORDER BY rno) 'rno2' ,
Reg AS Reg2 ,
SerialNo AS SerialNo2
INTO #test3
FROM (SELECT ROW_NUMBER() OVER (ORDER BY EmployeeId) 'rno' ,
Reg ,
SerialNo
FROM tRe
) AS c
WHERE (rno % \10 > 0
AND (rno/10) % 3 = 0
)
OR (rno % 10 = 0
AND (rno/10) % 3 = 1
)
SELECT *
FROM #test1 a
FULL OUTER JOIN #test2 b ON a.rno = b.rno1
FULL outer join #test3 c on b.rno1=c.rno2
EXEC MYTEST
哪里是截屏? – Squirrel
我已经尝试过,但它显示错误。 –