Aqui podrias hacer un while, cursor o algo para recorrer todos los valores de la tabla e ir armando tu propia tabla de salida, esto porque no existen las funciones pivot en sql2000, seria algo como esto:
Código SQL:
Ver originalDECLARE @x INT
DECLARE @nombre VARCHAR(200)
DECLARE @codigo VARCHAR(20)
DECLARE @linea INT
DECLARE @caso INT
DECLARE @tarea Nvarchar(20)
SET @x=1
SELECT *,(IDENTITY,1,1) AS rn INTO #temp FROM tabla
while (@x<=(SELECT COUNT(*) FROM #temp) )
BEGIN
IF(SELECT isnull(caso1,'') FROM #temp WHERE rn=@x)<>'' AND (SELECT isnull(tarea1,'') FROM #temp WHERE rn=@x <>'') )
BEGIN
SELECT @codigo=codigo,@nombre=nombre, @linea=linea,@caso=caso1, @tarea=tarea1 FROM tabla WHERE rn=@x
INSERT INTO resultados VALUES (@codigo,@nombre,@linea,@caso,@tarea)
END
IF(SELECT isnull(caso2,'') FROM #temp WHERE rn=@x)<>'' AND (SELECT isnull(tarea2,'') FROM #temp WHERE rn=@x <>'') )
BEGIN
SELECT @codigo=codigo,@nombre=nombre, @linea=linea,@caso=caso2, @tarea=tarea2 FROM tabla WHERE rn=@x
INSERT INTO resultados VALUES (@codigo,@nombre,@linea,@caso,@tarea)
END
IF(SELECT isnull(caso3,'') FROM #temp WHERE rn=@x)<>'' AND (SELECT isnull(tarea3,'') FROM #temp WHERE rn=@x <>'') )
BEGIN
SELECT @codigo=codigo,@nombre=nombre, @linea=linea,@caso=caso3, @tarea=tarea3 FROM tabla WHERE rn=@x
INSERT INTO resultados VALUES (@codigo,@nombre,@linea,@caso,@tarea)
END
SET @x=@x+1
END