Consulta resumen |
Responder |
Autor | |
jorgepenalver
Nuevo Unido: 16/Junio/2018 Localización: Madrid Estado: Sin conexión Puntos: 33 |
Tema: Consulta resumen Enviado: 01/Junio/2019 a las 14:06 |
Hola compañeros
Trabajo en un colegio y me han mandado los informáticos un fichero con el que quiero trabajar. Os incluyo una imagen de como es la estructura para que entendáis lo que quiero hacer. Esta tabla, en lugar de contener un solo ID por alumno con diferentes campos, ha generado un registro por cada opción que el alumno ha seleccionado. Es como si en una base de datos de películas tuviéramos 3 registros por cada película:
Así es como me han llegado los registros en esta tabla de alumnos, como podéis ver en la imagen. Lo que quiero es
Me estoy volviendo majareta con las consultas. Muchas gracias a todos Editado por jorgepenalver - 01/Junio/2019 a las 14:15 |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 02/Junio/2019 a las 09:40 |
Hola,
De entrada el diseño de la información que te han mandado me parece bastante correcto. Por lo que supongo que se trata de una extracción puntual de datos. Hoy tienes 6 "bloques" que quieres convertir en 6 campos. Si mañana tienes un numero distinto de bloques la cosa cambia. Lo que estás pidiendo no tengo yo muy claro que se pueda hacer mediante consultas. Yo lo plantearía mediante VBA: - Requisito previo: crear la tabla destino: idAlumno + los 6 campos "bloque". Para hacerlo fácil, deben tener el mismo nombre que los posibles valores (aunque eso va en contra de mi forma de nombrar campos) - Abrir recordsets sobre la tabla origen y destino - Recorrer el recordset origen - En cada registro buscar el idalumno en el recordset destino. Si lo encontramos -->Edit; si no lo encontramos --> AddNew - Asignar al campo adecuado el valor de "opción": rstDestino.Fields(rstOrigen!bloque) = rstDestino!Opcion - Salvar y pasar al siguiente Así es como yo lo enfocaría. Al final son pocas líneas de código Un saludo |
|
Chea1
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 20/Noviembre/2005 Localización: España Estado: Sin conexión Puntos: 4143 |
Enviado: 02/Junio/2019 a las 19:14 |
A mí la tabla de la imagen me parece la que soporta una relación de varios a varios entre Alumnos y Opciones, que se corresponden con los dos IDs que hay en la tabla. Opciones se relaciona además con otras dos tablas, Bloques y Clases, o, mejor dicho, con Clases que se relaciona a su vez con Bloques. Lo mínimo sería crear las tablas Alumnos y Opciones con sendas consultas de creación de tablas a partir de SELECT DISTINCT IdAlumno, Alumno FROM Mitabla y SELECT DISTINCT ID, Opción, Clase, Bloque FROM Mitabla. Si luego consigues separar las tablas Bloques y Clases y sustituir en la actual la descripción por sus respectivos ID, que tendrías que crear, quedaría mucho más fino. |
|
jorgepenalver
Nuevo Unido: 16/Junio/2018 Localización: Madrid Estado: Sin conexión Puntos: 33 |
Enviado: 23/Junio/2019 a las 16:27 |
Gracias por las respuestas. Lo veo mucho más claro.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |