SQL - Mostrar columna que suma datos

 
Vista:
sin imagen de perfil

Mostrar columna que suma datos

Publicado por David (3 intervenciones) el 04/10/2017 16:45:23
Buenos días compañeros.

Es posible generar una consulta en donde una columna muestre la suma de las columnas de la tabla que coincidan con el nombre de la columna ?

Es decir tengo un juego llamado SLOT que en la tabla puede aparecer en la columna JUEGO1 (con su columna cantidad1), o en la columna JUEGO2 (con su columna cantidad2), etc, Para la consulta me gustaría mostrar una columna que se llame SLOT con la suma de las columnas "cantidad" que coincidan con el nombre de Slot

Creo que de manera gráfica se entenderá mejor, adjunto imagen, ojalá me puedan ayudar !!

Saludos.
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar columna que suma datos

Publicado por Isaias (1921 intervenciones) el 04/10/2017 17:06:53
Hola

¿En que motor de base de datos?, ¿Que avance llevas?
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
sin imagen de perfil

Mostrar columna que suma datos

Publicado por David (3 intervenciones) el 04/10/2017 19:27:41
En sql server, el avance que tengo hasta ahora es generar la consulta que puede asignar una columna por cada juego, pero solo busca el nombre de dicha columna en un campo de la tabla (JUEGO1), faltaría que recorra cada columna de la tabla (JUEGO2, JUEGO3, JUEGO4 etc) de un mismo registro y mostrar la suma.

Gracias Isaias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
declare @juegazo NVARCHAR(max)
set @juegazo = ''
select @juegazo = @juegazo + '[' + tablaconsulta.jueguito + '], ' from
(
select distinct(cast(JUEGO1 as nvarchar(max))) as jueguito from tbl_prod_hechos_producto
) tablaconsulta
SET @juegazo = LEFT(@juegazo, len(@juegazo)-1)
--select @juegazo
 
 
EXECUTE(
'SELECT * FROM (
SELECT sal_officed, JUEGO1, CANT1
FROM tbl_prod_hechos_producto WHERE JUEGO1 IS NOT NULL
) PRODUCTO
PIVOT (SUM(CANT1)
FOR JUEGO1 IN (   '+ @juegazo +'     ) ) PVT')
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar columna que suma datos

Publicado por Isaias (1921 intervenciones) el 04/10/2017 20:16:24
Veamos

Tiene una tabla donde guarda el resultado del juego SLOT

Columnas llamadas Juego1........JuegoX

Veo que tiene error en el diseño de dicha tabla, pero bueno, ¿cuantas columnas Juego(x) puede tener?
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
sin imagen de perfil

Mostrar columna que suma datos

Publicado por David (3 intervenciones) el 04/10/2017 21:27:06
Así es Isaías, coincido contigo en que el diseño no fue el óptimo, pero actualmente nos encontramos trabajando con dicha tabla.

La cantidad de campos en la tabla destinada para los juegos es de 20 juegos con su respectiva columna para cantidad

A continuación te muestro cómo se encuentra estructurada la tabla y el resultado deseado de la consulta, adjunto ejemplo en imagen por si se desfasa el ejemplo incluido en texto

Espero me puedas ayudar, te lo agradecería mucho.

Saludos.

--------------------------------------------------------------------------------------------------------------------------------------------------------
TABLA EN SQL
Sala |JUEGO1 | CANTIDAD1 |JUEGO2 | CANTIDAD2 |JUEGO3 | CANTIDAD3 |
COATZACOALCOS SLOT 5 BINGO 2 SLOT 6
PUEBLA FIRE 7 FIRE 3 SLOT 4
COACALCO FIRE 3 SLOT 7 BINGO 7
--------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------
RESULTADO DE LA CONSULTA
Sala | SLOT | BINGO | FIRE |
COATZACOALCOS 11 2 0
PUEBLA 4 0 10
COACALCO 7 7 3
--------------------------------------------------------------------------------------------------------------------------------------------------------


consulta1
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar columna que suma datos

Publicado por Isaias (1921 intervenciones) el 04/10/2017 22:25:40
Si que esta MUY MAL diseñada la tabla, veamos, vuelvo a preguntar, ¿Solo tiene TRES juegos (SLOT, BINGO, FIRE)?
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