SQL - Mostrar los datos de varias columnas en una sola

   
Vista:

Mostrar los datos de varias columnas en una sola

Publicado por Alberto (3 intervenciones) el 04/04/2016 08:30:59
Buenos días estoy intentando visualizar una serie de datos que tengo en 8 columnas en una sola columna con 8 filas distintas. He tratado de usar la función unpivot pero no se utilizarla bien y el resultado no es el el esperado.


Esto es lo que tengo:

Dato1 Dato2 Dato3 Dato 4 Dato 5 Dato 6 Dato7 Dato8
5 5 0 0 10 10 50 50


Y esto lo que necesitaría obtener con un select

Datos
5
5
0
0
10
10
50
50

¿Alguien sabe como podría hacerlo?

Muchas 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

Mostrar los datos de varias columnas en una sola

Publicado por DAVID (23 intervenciones) el 04/04/2016 10:23:14
Y necesitas eso desde BBDD, no te vale con tratarlo luego por programa? Es que no le veo mucho sentido, pero por programa seria mas facil almacenarlo como mas te convenga, no?

Un saludo,
David
paginas web economicas
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

Es para representar los datos en una gráfica

Publicado por Alberto (3 intervenciones) el 05/04/2016 08:35:08
Hola David, estoy utilizando gráficas en visual studio y necesito darle la vuelta a los datos para poder asignar un dataset a los datos del eje X para que me lo represente gráficamente. Creo que por programa me va a costar mucho más porque al elemento gráfico no se como meterle datos individuales, si tengo los datos en vertical en una columna si que me los representa, pero mis datos los tengo en varias columnas.

Por eso lo intento hacer así, aunque es probable que haya más formas de hacerlo, estoy tratando de hacerlo así.

Gracias y un saludo.

Alberto.
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

Mostrar los datos de varias columnas en una sola

Publicado por leonardo_josue (880 intervenciones) el 04/04/2016 16:25:40
Hola Alberto:

dices que haz tratado de hacer la consulta con UNPIVOT, pero no pones la sentencia que estás tratando de ejecutar, entonces es complicado decirte qué estás haciendo mal. Postea lo que intentaste hacer para ver si podemos decirte cómo cambiar/modificar la consulta para que obtengas el resultado esperado.

Tampoco mencionas con qué BD's estás trabajando. Este dato es muy importante, pues aunque la mayoría de los DBMS's trabajan con una sintaxis parecida, hay diferencias importantes entre cada una de ellas.

Finalmente, también puedes obtener lo que quieres haciendo UNION's, No es la mejor manera de hacerlo, pero igual y te puede servir, sería algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
mysql> SELECT * FROM tabla;
+-------+-------+-------+-------+-------+-------+-------+-------+
| Dato1 | Dato2 | Dato3 | Dato4 | Dato5 | Dato6 | Dato7 | Dato8 |
+-------+-------+-------+-------+-------+-------+-------+-------+
|     5 |     5 |     0 |     0 |    10 |    10 |    50 |    50 |
+-------+-------+-------+-------+-------+-------+-------+-------+
1 row in set (0.00 sec)
 
mysql> SELECT dato1 datos FROM tabla
    -> UNION ALL
    -> SELECT dato2 datos FROM tabla
    -> UNION ALL
    -> SELECT dato3 datos FROM tabla
    -> UNION ALL
    -> SELECT dato4 datos FROM tabla
    -> UNION ALL
    -> SELECT dato5 datos FROM tabla
    -> UNION ALL
    -> SELECT dato6 datos FROM tabla
    -> UNION ALL
    -> SELECT dato7 datos FROM tabla
    -> UNION ALL
    -> SELECT dato8 datos FROM tabla;
+-------+
| datos |
+-------+
|     5 |
|     5 |
|     0 |
|     0 |
|    10 |
|    10 |
|    50 |
|    50 |
+-------+
8 rows in set (0.00 sec)

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

Mostrar los datos deMostrar los datos de varias columnas en una sola varias columnas en una sola

Publicado por Alberto (3 intervenciones) el 05/04/2016 09:00:33
Buenos días Leo.

Estoy utilizando Microsoft SQL Server. No había escrito el código con lo que había intentado porque mis columnas no se llaman exactamente como puse en el ejemplo y además viene de un select con algún JOIN asociado previo y pienso que iba a ser más lioso explicarme.

Lo escribo a continuación

SELECT CALCULO_DIAM_P01 FROM (
SELECT R.Calculo_A1_P01,R.Calculo_A2_P01,R.Calculo_B1_P01,R.Calculo_B2_P01,R.Calculo_C1_P01,R.Calculo_C2_P01,R.Calculo_D1_P01,R.Calculo_D2_P01
from Programas P inner join [Ensayos] E
On P.Id=E.Id_Programas inner join [Resultados] R
On E.Id=R.Id_Ensayos

where E.Entrada = 'ENTRADA FGH23' and R.NumPieza = '2'
) t

UNPIVOT
(quantity FOR CALCULO_DIAM_P01 IN (Calculo_A1_P01, Calculo_A2_P01, Calculo_B1_P01, Calculo_B2_P01, Calculo_C1_P01, Calculo_C2_P01, Calculo_D1_P01, Calculo_D2_P01))

AS u

Si ejecuto solo la parte del select me devuelve los datos que quiero en una fila

5 5 0 0 10 10 50 50



El problema lo tengo en la parte del UNPIVOT que no se utilizarlo y es como si me moviera el nombre de la columna en vez del dato contenido y me aparece esto en el resultado.


Calculo_A1_P01
Calculo_A2_P01
Calculo_B1_P01
Calculo_B2_P01
Calculo_C1_P01
Calculo_C2_P01
Calculo_D1_P01
Calculo_D2_P01


De cualquier modo, voy a probar utilizando Unions y te comento.

Muchas gracias.


Alberto
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