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

Access: Como puedo realizar esta consulta

Estas en el tema de Access: Como puedo realizar esta consulta en el foro de Bases de Datos General en Foros del Web. Espero ser claro. Tengo una tabla que contiene un campo con número de usuario, llamado iduser, además a cada iduser le asocié un idtarea, que ...
  #1 (permalink)  
Antiguo 08/05/2005, 16:41
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 22 años, 5 meses
Puntos: 0
Access: Como puedo realizar esta consulta

Espero ser claro.

Tengo una tabla que contiene un campo con número de usuario, llamado iduser, además a cada iduser le asocié un idtarea, que es la identificacion de la tarea que la persona hace.

id user | idtarea


pero cada persona puede tener más de una tarea asociada, es decir aparecer más de una vez en la tabla con tareas diferentes.

Como puedo hacer en access, asp, para hacer una consulta que me devuelva la cantidad de personas que realizan 4 tareas por ejemplo.

Desde ya muchas gracias.
__________________
Alvaro García
  #2 (permalink)  
Antiguo 09/05/2005, 08:54
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
relación varios a varios

yo creo que eso hay que plantearlo como una relación varios a varios que en palabras se expresa mas o menos así:

varios trabajadores pueden realizar varias tareas.

necesitas tres tablas

tabla trabajadroes
tabla tareas

y una tercera tabla que se llama tabla puente y que tu puedes darle el nombre que más te convenga, puede ser destinos, cuadrante, etc. en esta tabla deben figurar dos campos que reservados para las claves principales de las tablas trabajadores y tareas, es lo que en access se llama clave secundaria y que en mysql todavía no hay. además puedes añadir todos los campos que creas conveniente pero considero imprescindibles dos campos más, fecha de alta en la tarea y fecha de baja en la tarea. en mi blog hay muchísimos ejemplos de esto, si quieres ver una captura de pantalla de un formulario que muestra y permite filtrar registros de una relacion varios a varios aquí va:

http://www.carloszcom.com/blogima_gr/mosvava_1.html



http://www.carloszcom.com/blogima_gr/mosvava_1.html
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #3 (permalink)  
Antiguo 09/05/2005, 09:02
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
otra imagen

también te pego una captura de una relación varios a varios algo más complicada pero las hay muchísimo más, esto es una tontería al lado de una relación varios a varios múltiple, por ejemplo las que se utilizan para las estadística de la liga de baloncesto en estados unidos. varios jugadores incurrir en varias incidendias en varios partidos, por ejemplo.

http://www.carloszcom.com/blogima_gr...iento_i_6.html
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #4 (permalink)  
Antiguo 09/05/2005, 17:51
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 22 años, 5 meses
Puntos: 0
quizás por simplificar la pregunta y hacerla general no pude expresar bien lo que necesito.

Los usuarios tienen un número asignado y existe ya otra tabla que tiene todos los datos. Por otro lado las tareas son en realidad actividades que un usuario (un alumno puede hacer) y también existe otra tabla que contiene el número de actividad y la descripción.

A la tabla que hago referencia es la que cruza un número de alumno (usuario), con la actividad que realizar (guitarra, teatro, fotografía, etc.).

Entonces por ejemplo, el usuario 1234 puede hacer guitarra, teatro, fotografía, etc.

es decir que va a tener más de una entrada en la tabla que asocia alumno y actividad que realiza.

Contar cuantas actividades hace el alumno 1234 es algo fácil; lo que nos interesa es conocer la cantidad de gente que hace cuatro actividades por ejemplo. Es decir buscar en la tabla aquellos alumnos que tiene cuatro ocurrencias.

Podría agarrar alumnos por alumnos y fijarme si rs.count es 4 y asi devolverlo pero no se si no sería recargar mucho a la base.

Espero haber aclarado un poco la pregunta, nuevamente gracias.
__________________
Alvaro García
  #5 (permalink)  
Antiguo 10/05/2005, 02:47
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
no estoy seguro de haberte entendido pero si quieres hacer una consulta de esa tabla que tu dices que "cruza datos de otras dos" tendrías que hacer algo así

select idalumno from tabla cruzada where actividad es igual a guitarra

no sé como son las tablas que has hecho pero lo normal sería que esto te diera resultados confusos tendrías que reflejar en la consulta las uniones, por ejemplo

select idalumno, apellidos, nombre, etc from tabla cruzada left join alumnos where actividad es igual a guitarra and actividad es igual a montañismo, etc.

creo que lo mejor para que te devuelva un número de registros habría que utilizar la función count, pero sin saber como es tu diseño no se me ocurre nada más.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #6 (permalink)  
Antiguo 11/05/2005, 05:15
 
Fecha de Ingreso: septiembre-2004
Ubicación: Valencia
Mensajes: 39
Antigüedad: 19 años, 7 meses
Puntos: 0
Prueba a utilizar funciones de agregado dentro de la cláusula Where, simple y efectivo.
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:44.