SQL - que me aparezca los dias sin repetir el codigo...

   
Vista:

que me aparezca los dias sin repetir el codigo...

Publicado por Miguel (10 intervenciones) el 27/10/2013 04:13:18
Holaaas mi duda es simple de entender pero dificil de resolver...

tengo esta tabla
ID DIAS
87 1
87 2
54 1
51 3
51 4
51 5
32 6

ID q indica ID que esta relacionado a otra tabla, y dias que indica con numero los dias de semana que le toca.... es para indicar por ej: que dia es tal curso que me inscribi.
Como puedo hacer la consulta para que me aparezca los dias concatenados en una sola columna??? es para saber que dias de las inscripciones sin hacer repetir el ID. Muchas gracias y Slds!
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 xve

que me aparezca los dias sin repetir el codigo...

Publicado por xve (238 intervenciones) el 27/10/2013 18:10:22
Hola Miguel, no entiendo muy bien a que te refieres... nos puedes comentar con mas detalle?
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

que me aparezca los dias sin repetir el codigo...

Publicado por Miguel liaomiguel@gmail.com (10 intervenciones) el 27/10/2013 23:07:22
Hola, si, en realidad estoy haciendo una pagina de un gimnasio como TP... pero unos de los problema que me encontre es como representar los dias...ej: mostrar al usuario una tabla de las clases que hay y dias disponibles para esas clases, (ej: yoga solo lo dan jueves y viernes... tenis lo dan lun, mart y mierc.... etc)
Ahi subo un diagramita en JPG con algunas tablas de ejemplo ...
la duda es como hacer la consulta para mostrar las clases con sus respectivos dias...

quedo medio grande la imagen...
click a la imagen los linkea
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

que me aparezca los dias sin repetir el codigo...

Publicado por leonardo_josue (878 intervenciones) el 28/10/2013 19:40:11
Hola Miguel:

Tuve problemas para poder visualizar la imagen que subiste, no sé si hay algún problema con la liga o si sea problema con las políticas de mi empresa (suele bloquear imágenes y contenido dudoso), pero si entendí bien, lo que quieres hacer es obtener algo como esto:

1
2
3
4
5
ID DIAS
87 1,2
54 1
51 3,4,5
32 6

correcto?... el problema es que no mencionas con qué base de Datos estás trabajando (un error bastante común). Aunque todos los DBMS se basan en SQL, tienen diferencias sintácticas bastante significativas y funciones específicas que pueden facilitar o complicar una consulta.

Por ejemplo, Si el planteamiento de arriba es lo que que quieres obtener, en MySQL tienes la función GROUP_CONCAT que lo hace de manera automática:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mysql> SELECT id, dias FROM tabla ORDER BY id;
+------+------+
| id   | dias |
+------+------+
|   32 |    6 |
|   51 |    3 |
|   51 |    4 |
|   51 |    5 |
|   54 |    1 |
|   87 |    1 |
|   87 |    2 |
+------+------+
7 rows in set (0.27 sec)
 
mysql> SELECT id, GROUP_CONCAT(dias) FROM tabla GROUP BY id ORDER BY id;
+------+--------------------+
| id   | GROUP_CONCAT(dias) |
+------+--------------------+
|   32 | 6                  |
|   51 | 3,4,5              |
|   54 | 1                  |
|   87 | 1,2                |
+------+--------------------+
4 rows in set (0.01 sec)

así, otros DBMS ofrecen funciones similares, pero otros no tienen nada parecido. Entonces, sin saber con qué BD de datos trabajando, imagina lo complicado es tratar de ayudarte.

Si esto no es lo que necesitas o continuas con problemas, trata de explicarte mejor, y evita las imágenes jejejejeje

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
2
Comentar

que me aparezca los dias sin repetir el codigo...

Publicado por Miguel liaomiguel@gmail.com (10 intervenciones) el 29/10/2013 14:30:09
exactamente lo que buscaba!

igual me queda 2 dudas por solucionar.
tengo esta consulta
select * from clases join inscribe on clases.cod_clase = inscribe.cod_clase where dni = 32990916;


hay forma de hacer un group by fecga mensual? es una consulta para saber los cuotas mensuales a pagar segun a las clases que se inscribio por cada mes.

y la otra es hay alguna forma de comparar con la fecha actual o la fecha del dia???...

Gracias!
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