FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Pasar Registros de Query a una Tabla
Hola compañeros, Tengo una pequeña duda, a ver si es posible que me ayuden, Tengo un query al cual le aplico un filtro, quiero pasar los registros obtenidos de este filtro a una tabla temporal, ¿como puedo hacer esto? o en su defecto, ¿puedo aplicar varios filtros a un query, me refiero a que una vez que apliqué un filtro, a ese query filtrado aplicarle otro filtro, y asi sucesivamente hasta cuatro filtros distintos, hice ciertos cálculos y las diferentes combinaciones de filtros que necesito hacer son 560 filtros¡¡¡, Ejemplificaré lo que quiero hacer a ver si es posible
Tengo un Form con cuatro diferentes ComboBox el primer combo tiene 4 posibles valores, el segundo tiene 7 posibles valores, el tercero tiene 4 posibles valores y el cuarto tiene 5 posibles valores esto me dá 4*7*4*5=560 combinaciones posibles, bueno hasta ahi esta bien no hay problema, el problema es para aplicar esos filtros a un query, se me ocurrió primero filtrar el query, con el primer combo y ya una vez filtrado volverlo a filtrar por el valor del segundo combo, pero no funciona una vez aplicado el segundo filtro el primero se desaparece, ahora otra opcion es la de crear dos tablas temporales, en la primera vaciaría los valores del primer filtro aplicado al query, y depues filtrar esta tabla y vaciar los registros filtrados a la tabla dos, al mismo tiempo que la vacio, una vez hecho esto, filtro la tabla 2 con el tercer valor del combo, y paso los registros a la tabla 1 nuevamente (que se habia vaciado), por ultimo aplico el cuarto filtro a la tabla 1 nuevamente y es como obtendría el verdadero resultado que necesito. ¿como ven?, ¿estoy bien?, o ¿puede haber otra opción?. Por su atención muchas gracias.
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
#2
|
||||
|
||||
Yo creo que es mucho mejor opción armar el Select "al vuelo" con cualquier combinación de las cuatro condiciones aplicables, asignarlo a la propiedad SQL del query y abrirlo.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Resolví el problema, haciendo lo de las tablas temporales.
Gracias.
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
#4
|
||||
|
||||
Algo complicado ¿no? Como dice jachguate simplemente tienes que armar al vuelo una consulta SELECT construyendo la condición WHERE de acuerdo a los valores de los Combos. Pienso que además el rendimiento será mucho más eficiente.
// Saludos |
#5
|
||||
|
||||
Lo porbaré, pero que pasa si en las opciones de los combos hay una que no es valor que exista en la tabla, por ejemplo, la palabra "Todos", esto me indicaría que quiero todos los registros de este campo, pero si el Query busca el valor "todos", dentro de la tabla, obviamente que no va a encontrar nada y la consulta me la va a regresar vacía, Por ejemplo digamos:
El primer Combo se selecciona la opción X (que si existe como valor en la tabla) El segundo Combo Elijo La Opción Y (Que también Existe) El tercer Combo se elige La Opción "Todos" (Esta no existe) Y el cuarto Combo Se elige la opcion Z (que también existe) Por culpa de la tercera opción el Query me saldría Vació, y no es ese el resultado esperado. Me explique??
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
#6
|
||||
|
||||
Cita:
En el ejemplo que expones, al aplicar el tercer filtro sobre los dos anteriores es entonces lógico que no te de resultados no habiendo registros que satisfagan la condición. ¿No estás confundiendo ors con ands? Tal como lo planteaste en el primer mensaje las condiciones de cada combo se unen con una conjunción lógica AND- debe cumplir todas las condiciones. Quizá lo que buscas es unirlos con un OR- cumple alguna de las condiciones. // Saludos |
|
|
|