FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Unir dos TADOQuery en uno solo
Compañeros del Foro.
Espero me puedan ayudar a resolver esta situación, la cual se me ocurrió al tratar de simplificar la programación de la aplicación en Delphi 7. Resulta que en este momento tengo dos TADOQuery, que seleccionan por medio de SELECT a la misma tabla (MSSQL 2000) cada uno un conjunto diferente de registros, en donde es posible que un mismo registro este en ambos TADOQuery. Requiero recorrer ambos conjuntos de registros en un orden especifico, para lo cual requeriría ir controlando si el registro del TADOQuery-1 es mayor al registro del TADOQuery-2, para leer entonces el TADOQuery-2 y procesar su información, o viceversa. Lo que se me ocurrió fue ver si hay la posibilidad de unir ambos conjuntos de registros en uno solo, clasificarlo en el orden requerido e ir procesando solamente un solo conjunto de registros, en lugar de ir procesando dos, controlando la lectura de ambos en el orden necesario. Por lo tanto, mi duda especifica es: ¿Existe la manera de unir dos conjuntos de registros de dos TADOQuery que tienen la misma estructura en uno solo? Espero que me haya podido explicar, dado que he batallado para tratar de poner claro mi escenario. Gracias de antemano a todos por sus respuestas y sugerencias. |
#2
|
||||
|
||||
Hola,
Creo que no he acabado de entender lo que pides, porque no haces en una sola consulta las dos condiciones, ahora no se si me explico bien yo, quiero decir que si una consulta es: y la otra es: porque no pones en un sola lo siguiente: Lo ordenas por donde quieras y vas rescatando los datos que te hacen falta, es un ejemplo un poco simple y tal vez yo no he terminado de entender lo que pretendes, espero te sirva de algo, sino es así da un poco más de información, como por ejemplo algo de codigo de esas consultas. Un saludo. |
#3
|
||||
|
||||
Hola saldanaluis, puedes utilizar un UNION para unir las sentencias SQL que tienes en tus dos AdoQuery.
Esta parte no he entendido, que es lo que exactamente quieres hacer. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#4
|
||||
|
||||
Algo similar a eso sería, solo que el "where" tendría condiciones diferentes: ejemplo
WHERE poblacion = 'Murcia' (TADOQuery-1) WHERE Tipo_Cliente = 'BASE' (TADOQuery-2) Como podrás ver, va a haber registros iguales en ambos TADOQuery. Al hacerlo en un solo TADOQuery, requiero que los clientes de Murcia tipo BASE tengan dos registros, uno por ser de Murcia, y el otro por ser tipo BASE, e identificar cada registro de alguna manera, debido a que si se seleccionó por ser de Murcia, se toman ciertos criterios de evaluación, y si se seleccionó por ser tipo BASE, se toman otros criterios de evaluación. Por eso es que quería saber si ambos conjuntos de registros seleccionados se podían unir en uno solo. (Creo que no soy bueno para explicar este tipo de situaciones, o no he tenido el contacto suficiente con este foro para aprender a explicar mis requerimientos) Les agradezco sus sugerencias y respuestas. |
#5
|
||||
|
||||
Lo que me refiero al mencionar que requiero recorrer ambos conjuntos de registros en un orden especifico, es que clasifico (SORT) ambos TADOQuery por Vendedor, Tipo_Cliente y Codigo_Cliente. Voy recorriendo ambos TADOQuery pero requiero hacer subtotales por Tipo_Cliente y por Vendedor, por lo que voy avanzando en ambos TADOQuery de acuerdo al orden de clasificación, y poder saber si un cierto cliente estuvo en ambos TADOQuery, saber que ya se recorrieron los registros de cierto Tipo_Cliente en ambos Query y reportar el subtotal por dicho Tipo_Cliente, así mismo por Vendedor.
Voy a tratar de poner en claro mis ideas para poder explicar mejor mi situación. De cualquier manera agradezco sus sugerencias. |
#6
|
||||
|
||||
Cita:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#7
|
||||
|
||||
Cita:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
||||
|
||||
Un tipo de join que nos ofrece SQL Server y que yo pensaba que era totalmente inutil talvez aplique en tu situación.
¿Haz utilizado el full outer join ? Con esto, obtendrás ambos universos completitos, pero los registros que están en ambos universos no se verán duplicados. Espero te sirva porque no se realmente que necesitas. Saludos.
__________________
Tiempo y ocasión acontecen a todos! |
#9
|
||||
|
||||
Cita:
|
#10
|
||||
|
||||
Cita:
El union si lo acepta el SQL Server 2000
__________________
Tiempo y ocasión acontecen a todos! |
#11
|
||||
|
||||
Así es. En efecto. Ya me lo tomó. Lo que pasa es que yo tenía un 'ORDER BY' en el primer 'SELECT' antes del 'UNION'. Lo quité y puse el 'ORDER BY' al final de todo, y si me lo toma.
Está más o menos asi: SELECT X,Y,Z FROM TBL WHERE Y.... UNION SELECT X,Y,Z FROM TBL WHERE Z.... ORDER BY Z,X Gracias a todos por sus respuestas. Han sido de gran utilidad. No hay duda de que aqui en el foro hay gente con amplio conocimiento de muchos temas, y que están dispuestos a compartirlo con personas como uno que tiene muchas preguntas. Los voy a seguir molestando con mis preguntas. Saludos... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TADOQuery | bastian | Conexión con bases de datos | 1 | 27-02-2009 18:17:14 |
unir varios report en uno solo | Eusebio | Impresión | 0 | 02-02-2006 12:37:48 |
ayuda con TADOQUERY | az_jazo | SQL | 1 | 15-09-2005 23:37:40 |
mostrar SOLO cliente de los que tengo un sólo registro | Giniromero | SQL | 15 | 11-06-2004 12:33:19 |
¿Unir documentos de word en uno solo? | Firibiri | Servers | 0 | 31-10-2003 18:24:18 |
|