FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
consulta sql compleja
Hola,
quisiera pediros ayuda en una consulta sql que no consigo resolver y que no se si podria ejecutarse tengo tres tablas [tbl_PREGUNTAS] idPREG PREGUNTA idRESPok [tbl_RESPUESTAS] idRESP idPREG OPCION [tbl_testCOMPLETADO] idTEST idPREG miRespuesta La cuestion es que estoy intentando ejecutar una consulta, donde me de como resultado, las preguntas mal respondidas de un test en cuestion, mostrandome a su vez, la opcion correcta y la opcion incorrecta que yo marque en el test En el programa, muestro un test de N preguntas con sus correspondientes respuestas (4 opciones) y para cada pregunta, el usuario selecciona la respuesta que almaceno como miRespuesta en tbl_TESES A su vez, previamente hemos marcado en la base de datos, la respuesta correcta a cada pregunta a traves del campo idRESPok en la tabla tbl_PREGUNTAS Poniendo un ejemplo, tbl_PREGUNTAS idPREG - PREGUNTA - idRESPok ----------------------------------------------------- 1 - Preg 1 - 3 2 - Preg 2 - 5 3 - Preg 3 - 10 tbl_RESPUESTAS idRESP - idPREG - OPCION ----------------------------------------------------- 1 - 1 - a:Respuesta a, preg 1 2 - 1 - b:Respuesta b, preg 1 3 - 1 - c:Respuesta c, preg 1 4 - 1 - d:Respuesta d, preg 1 5 - 2 - a:Respuesta a, preg 2 6 - 2 - b:Respuesta b, preg 2 7 - 2 - c:Respuesta c, preg 2 8 - 2 - d:Respuesta d, preg 2 9 - 3 - a:Respuesta a, preg 3 10 - 3 - b:Respuesta b, preg 3 11 - 3 - c:Respuesta c, preg 3 12 - 3 - d:Respuesta d, preg 3 tbl_testCOMPLETADO idTEST - idPREG - miRespuesta --------------------------------------------------------- 1 - 1 - 2 1 - 2 - 6 1 - 3 - 10 El resultado que quisiera obtener seria (preguntas mal respondidas de un test con la opcion correcta e incorrecta): PREGUNTA OPCION(Bien) OPCION(Mal) ------------------------------------------------------------------------ Preg 1 c:Respuesta c, preg 1 b:Respuesta b, preg 1 Preg 2 a:Respuesta a, preg 2 b:Respuesta b, preg 2 Nota: la pregunta 3 no se mostraria, porque en el test marcamos la opcion correcta Consigo sacar sin problemas las respuestas mal respondidas, mostrando la opcion correcta, pero me es imposible añadir el campo opcion incorrecta Consulta que me funciona para mostrar solo la opcion correcta
Consulta que intento obtener sin exito para mostrar opcion incorrecta
Con esto, el resultado que obtengo es por ejemplo: PREGUNTA OPCION(Bien) OPCION(Mal) ------------------------------------------------------------------- Preg 1 c: Respuesta c, Preg 1 b:Respuesta b, preg 1 Preg 1 c: Respuesta c, Preg 1 b:Respuesta b, preg 2 Preg 2 a:Respuesta a, preg 2 b:Respuesta b, preg 1 Preg 2 a:Respuesta a, preg 2 b:Respuesta b, preg 1 Espero haberme explicado, Agradezco vuestra ayuda de antemano |
#2
|
|||
|
|||
Si es Sql Server aunque lo estoy escribiendo aquí sin probarlo en el entorno debe andar por ahí
|
#3
|
|||
|
|||
Hola,
Gracias por la respuesta El entorno no es SQL Server, sino Access Probare lo que me comentas, buscando el equivalente a select case en access que por lo que he encontrado podria hacerse con IIF(a evaluar,valor verdadero,valor falso) Me has dado una buena pista Muchas gracias Comentare el progreso |
#4
|
|||
|
|||
, también si fuera sql server en el case falto el end que termina la instrucción case
|
#5
|
|||
|
|||
Cita:
trabajo sobre access 2010 probe lo que me comentas, pero no obtengo el resultado que quiero no me interesa mostrar con un [TEXT] indicando si la respuesta esta bien o mal respondida que entiendo es lo que evalua
lo que quiero es, mostrar las preguntas que se han respondido mal y mostrar el campo [OPCION] con su respuesta correcta y su respuesta incorrecta pongo otro ejemplo por si pudiera verse mas claro adjuntando un pdf como dije antes, lo que llego a conseguir es sacar los datos que quiero, exceptuando la columna que se ve en la imagen como [miRespuesta: INCORRECTA] la consulta que ejecuto es esta (faltaria añadir lo que no consigo, la columna con la opcion INCORRECTA y para la que os pido ayuda)
Saludos y gracias por vuestro tiempo y ayuda |
#6
|
|||
|
|||
por lo que veo entonces es algo con las condiciones en el where o las condiciones de los Joins
En esta condición filtras las respuestas incorrectas
En la siguiente condición teniendo la primera condición quieres igualar una respuesta correcta con las preguntas que ya se filtraron como incorrectas
y si ademas estas condiciones se contradicen con las condiciones de la unión de las tablas puede que no obtengas los resultados que esperas Lo que te propongo es que depures esa consulta utilizando aquel refrán que dice "Divide y Vencerás". Has la consulta básica de las preguntas incorrectas si te sale bien, sigue agregando y probando las demás condiciones hasta que encuentres donde esta el problema. Si tienes condiciones excluyentes y cada condición devuelve un conjunto de resultados que te interesa quizás necesites hacer un union. Hacer un select con las primeras condiciones luego union y luego el otro select con las otras condiciones, los campos de ambos select deben coincidir. |
#7
|
|||
|
|||
Mostrando el valor del campo de una tabla con DOS posibles valores en DOS columnas
Hola otra vez,
Gracias juniorSoft por haber dedicado parte de tu tiempo... Hasta las pruebas que he llegado hacer, parece que he ENCONTRADO LA SOLUCION Buscando, buscando pense que podrian ir los tiros por aqui (ejemplo sacado de: http://www.forosdelweb.com/f86/recup...-tabla-697316/ Una consulta sobre una tabla a la que se ejecuta un JOIN sobre si misma
La cuestion es que, tambien encontre este otro ejemplo en el que me he basado y he conseguido al parecer que funcione para mis objetivos: http://www.forosdelweb.com/f86/dos-c...r-sql-1047898/ Muestra dos columnas con valores diferentes para un mismo campo de una misma tabla
Aplicando digamos los dos ejemplos, la consulta me quedo de la siguiente manera Por si alguien podria serle de utilidad...
En definitiva, pongo un resumen a groso modo de en lo que consistiria la consulta
|
#8
|
|||
|
|||
Cita:
Veo que haces muchos sub-select, quizas con sql server hace un plan de ejecución pero no se que tan eficiente sea esa consulta en MS-access, quizás puedas hacer pruebas introduciendo muchos registros en esas tablas a ver como responde |
#9
|
|||
|
|||
hola a todos
mira si te puede servir esta consulta:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta demasiado compleja | oscarac | SQL | 7 | 10-03-2011 15:46:16 |
Consulta sql Compleja | oca | SQL | 9 | 21-04-2008 17:39:22 |
Consulta ¿compleja? | salvica | SQL | 4 | 13-01-2008 21:03:09 |
Consulta compleja | Jesús Pena | SQL | 3 | 19-07-2007 08:54:40 |
consulta SQL que me resulta compleja | j2mg | SQL | 5 | 29-05-2003 23:50:13 |
|