Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] coincidencia de una columna con el id

Estas en el tema de coincidencia de una columna con el id en el foro de Mysql en Foros del Web. Hola amigos del foro, tengo la siguiente cuestión. Tengo una tabla a la que llamo dbencuestas con la columna id_curso en donde repito varias veces ...
  #1 (permalink)  
Antiguo 20/01/2014, 19:48
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 3 meses
Puntos: 0
coincidencia de una columna con el id

Hola amigos del foro, tengo la siguiente cuestión.

Tengo una tabla a la que llamo dbencuestas con la columna id_curso en donde repito varias veces un folio por ejemplo 259 digamos que de ese curso existen 10 encuestas contestadas.

ahora en otra tabla tengo una columan denominada folio y una columna en donde publico el total de encuestas contestadas por cada curso (totalenc) entonces aqui deberia colocar 10.

mi pregunta es existe manera de que con una consulta mysql pueda asignar esa cuenta de acuerdo al folio es decir que coindidan el folio 259 con la cuenta de las encuestas con el id_curso 259?

espero ser claro en mi pregunta, de lo contrario por fa comentenme para tratar de ser mas claro.

Saludos y de antemano gracias por su apoyo.

saludos cordiales.
__________________
Bibliotecario pero morboso de las Tecnologías....
  #2 (permalink)  
Antiguo 21/01/2014, 04:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: coincidencia de una columna con el id

elmoikano,
si te he entendido bien, no te hace falta almacenar nada de eso. Te basta con una consulta como esta para saber las que hay de cada folio
Código MySQL:
Ver original
  1. SELECT folio, COUNT(*) totalfolio FROM dbencuestas GROUP BY  folio
Y si quieres las de un folio en concreto:
Código MySQL:
Ver original
  1. SELECT folio, COUNT(*) totalfolio FROM dbencuestas WHERE folio = '259' GROUP BY  folio

Naturalmente, puedes añadir filtrados por curso o lo que necesites.
  #3 (permalink)  
Antiguo 21/01/2014, 13:41
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: coincidencia de una columna con el id

Hola jurena, gracias por la ayuda, sabes el lio es que debo juntar dos tablas, mira ya avnce algo con un left join, de la siguiente forma:
Código:
$sql2 = "  select tx.id,tx.folio,tx.typ_curso,tx.fecha,tx.horario,tx.duracion,tx.solicitante,tx.programa,tx.materia,
					tx.Instructor,tx.rec_sol,tx.rec_utili,tx.asistentes,tx.semestre,ty.id_curso, count(ty.id_curso) as ter, 
					tx.observa 
					from 
					reg_cursos tx 
					left join 
					dbencuestas 
					ty on ty.id_curso = tx.folio
				
					 group by ty.id_curso Order by tx.folio desc";
y me da el resultado que deseo, que algo similar a esto:

Código:
+----+-------+-------------+------------+----------+----------+-------------+----------+---------+---------------+---------+-----------+------------+----------+----------+-----+---------+
| id | folio | typ_curso   | fecha      | horario  | duracion | solicitante | programa | materia | Instructor    | rec_sol | rec_utili | asistentes | semestre | id_curso | TER | observa |
+----+-------+-------------+------------+----------+----------+-------------+----------+---------+---------------+---------+-----------+------------+----------+----------+-----+---------+
| 36 |   256 | Instruccion | 2014-01-16 | 03:00:00 | 09:00:00 | 111         | 111      | 11      | Gabriela Vaca | 11      | 11        |         11 |       11 |      256 |   3 | 111     |
| 40 |   263 | Instruccion | 2014-01-21 | 02:00:00 | 05:00:00 | 2131        | 1231     | 123     | Gabriela Vaca | 123     | 123       |         21 |        3 |      263 |   3 | 21313   |
+----+-------+-------------+------------+----------+----------+-------------+----------+---------+---------------+---------+-----------+------------+----------+----------+-----+---------+
2 rows in set (0.00 sec)
ahora el lio es que necesito que los cursos que lista aqui, esten en un rango de tiempo, se que tengo que utilizar esta frase:

WHERE tx.fecha between date_sub(now(), interval 2 week) and
//date_add(now(), interval 2 week)

pero no se como aplicarla ni en que parte de la consulta.

Alguna sugerencia?

Cita:
Iniciado por jurena Ver Mensaje
elmoikano,
si te he entendido bien, no te hace falta almacenar nada de eso. Te basta con una consulta como esta para saber las que hay de cada folio
Código MySQL:
Ver original
  1. SELECT folio, COUNT(*) totalfolio FROM dbencuestas GROUP BY  folio
Y si quieres las de un folio en concreto:
Código MySQL:
Ver original
  1. SELECT folio, COUNT(*) totalfolio FROM dbencuestas WHERE folio = '259' GROUP BY  folio

Naturalmente, puedes añadir filtrados por curso o lo que necesites.
__________________
Bibliotecario pero morboso de las Tecnologías....
  #4 (permalink)  
Antiguo 21/01/2014, 13:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: coincidencia de una columna con el id

Has probado a añadir el filtro de fecha antes del group by
Código MySQL:
Ver original
  1. SELECT tx.id,tx.folio,tx.typ_curso,tx.fecha,tx.horario,tx.duracion,tx.solicitante,tx.programa,tx.materia,
  2. tx.Instructor,tx.rec_sol,tx.rec_utili,tx.asistentes,tx.semestre,ty.id_curso, count(ty.id_curso)  ter, tx.observa
  3.     FROM reg_cursos tx
  4.     LEFT JOIN dbencuestas ty ON ty.id_curso = tx.folio
  5.         GROUP BY ty.id_curso ORDER BY tx.folio desc
  #5 (permalink)  
Antiguo 21/01/2014, 15:55
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: coincidencia de una columna con el id

Hombre, toda la razón, estimado amigo, te agradezco mucho la ayuda..... te envío un fuerte abrazo, y gracias por compartir tus conocimientos...

saludos cordiales.

Quedo así la consulta

Código:
select tx.id,tx.folio,tx.typ_curso,tx.fecha,tx.horario,tx.duracion,tx.solicitante,tx.programa,tx.materia,tx.clave_mat,
					tx.nom_curso,tx.tematica,tx.Instructor,tx.rec_sol,tx.rec_utili,tx.asistentes,tx.semestre,tx.ty_usuario,ty.id_curso, 
					count(ty.id_curso) as encues, 
					tx.observa 
					from 
					reg_cursos tx 
					left join 
					dbencuestas 
					ty on ty.id_curso = tx.folio
					WHERE tx.fecha between date_sub(now(), interval 2 week) and date_add(now(), interval 2 week)
					group by ty.id_curso Order by tx.folio desc
Cita:
Iniciado por jurena Ver Mensaje
Has probado a añadir el filtro de fecha antes del group by
Código MySQL:
Ver original
  1. SELECT tx.id,tx.folio,tx.typ_curso,tx.fecha,tx.horario,tx.duracion,tx.solicitante,tx.programa,tx.materia,
  2. tx.Instructor,tx.rec_sol,tx.rec_utili,tx.asistentes,tx.semestre,ty.id_curso, count(ty.id_curso)  ter, tx.observa
  3.     FROM reg_cursos tx
  4.     LEFT JOIN dbencuestas ty ON ty.id_curso = tx.folio
  5.         GROUP BY ty.id_curso ORDER BY tx.folio desc
__________________
Bibliotecario pero morboso de las Tecnologías....

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:04.