SQL - Combinar filas escalonadas

 
Vista:

Combinar filas escalonadas

Publicado por Raul (2 intervenciones) el 17/12/2014 23:00:05
Buenas tardes espero que alguien pueda ayudarme con esta duda:


Tengo la siguiente información y deseo mostrarla en una sola fila como lo puedo hacer en sql server

1
2
3
4
5
campo1	campo2	campo3	campo4
id
	valor1
		valor2
			valor3


Quiero mostrarlo asi

1
2
campo1	campo2	campo3	campo4
id	valor1	valor2	valor3




Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Combinar filas escalonadas

Publicado por leonardo_josue (1173 intervenciones) el 18/12/2014 18:27:02
Hola Raul:

Antes de contestarte tendrías que contestar las siguientes preguntas:

1. ¿Con qué BD's estás trabajando y con qué versión/edición?
2. ¿Los datos que pones son los únicos que tienes en la tabla? o existen más id's o más registros
3. ¿De qué tipo de datos es cada una de las columnas?
4. Los campos que tienes como blanco, ¿tienen un null o algún otro valor?

tal como tienes los datos, podrías utilizar de manera "tramposa" una función de agrupación tipo MAX:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql> SELECT * FROM tabla;
+--------+--------+--------+--------+
| campo1 | campo2 | campo3 | campo4 |
+--------+--------+--------+--------+
| id     | NULL   | NULL   | NULL   |
| NULL   | valor1 | NULL   | NULL   |
| NULL   | NULL   | valor2 | NULL   |
| NULL   | NULL   | NULL   | valor3 |
+--------+--------+--------+--------+
4 rows in set (0.00 sec)
 
mysql> SELECT MAX(campo1), MAX(campo2), MAX(campo3), MAX(campo4)
    -> FROM tabla;
+-------------+-------------+-------------+-------------+
| MAX(campo1) | MAX(campo2) | MAX(campo3) | MAX(campo4) |
+-------------+-------------+-------------+-------------+
| id          | valor1      | valor2      | valor3      |
+-------------+-------------+-------------+-------------+
1 row in set (0.00 sec)

Pero esta respuesta sólo es válida para los datos que pones... responde a las preguntas del inicio para poder indicarte una mejor respuesta.

Saludos
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Combinar filas escalonadas

Publicado por Raul (2 intervenciones) el 18/12/2014 19:34:14
Hola Leo gracias por responder te comparto que uso sql server 2008 y todos los datos son varchar, lo que quiero es unificar los resultados como a continuacion
+--------+--------+--------+--------+
| campo1 | campo2 | campo3 | campo4 |
+--------+--------+--------+--------+
| id1 | NULL | NULL | NULL |
| id1 | valor1 | NULL | NULL |
| id1 | NULL | valor2 | NULL |
| id1 | NULL | NULL | valor3 |
| id1 | Vaor12 NULL | NULL |
+--------+--------+--------+--------+

Este es el resultado que espero, pero si uso el max solo me mostrara un registro y debo mostrar todos los que existan

+-------------+-------------+-------------+-------------+
| MAX(campo1) | MAX(campo2) | MAX(campo3) | MAX(campo4) |
+-------------+-------------+-------------+-------------+
| id1 | valor1 | valor2 | valor3 |
| id1 | valor12 | NULL | NULL |
+-------------+-------------+-------------+-------------+
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar