![]() |
Ayuda con una consulta necesaria!
Hola amigos, recurro a uds. xq me encuentro sin poder encontrar la solucion a lo q necesito..
Yo tengo una tabla cargada con varios datos, supongamos movimientos de un expte. Dentro de los datos importantes en cada registro esta el nro. de expte (o codigo unico) y el orden en que se realizó el pase.. mas alla de la fecha y otros datos q no vienen al caso. N.exp Ord 1001 | 1 1001 | 2 1001 | 3 1002 | 1 1002 | 2 1005 | 1 1005 | 2 1005 | 3 1005 | 4 etc... Lo que necesito es hacer una consulta que tome todos los expedientes cargados, pero solo el ultimo movimiento de cada uno! el cual esta determinado por el orden (ord).. y asi conseguir un query con esos datos. Expte y Ultimo Movimiento nada más! Podra alguien ayudarme y decirme como se arma esa consulta, ese SELECT ? muchas gracias! |
Cita:
|
Creo que también puedes poner algo así:
Por cierto, para otra vez procura poner un título más descriptivo a tu pregunta, gracias ;) |
Muchas gracias compañeros.. lo de casimiro q es mas simple funciona bien, pero.. tengo un problema, no puedo hacer q tome todos los datos de la tabla, solo esos 2 (nexp y ord)
QUE debo agregar para tomar todos los datos? Gracias! PD: casimiro no puedo editar el titulo, siempre trato de ser especifico.. |
Creo que necesitas un simple tutorial sql ;)
Añades los campos que quieras al select. Y en el group by pones los mismos campos. |
Yo ya habia agregado todos los campos que necesito al select pero no los habia agregado al group by, xq obviamente solo quiero el orden maximo de cada expediente.. no todo..
No funciona como vos me decis casimiro.. se pierde el filtrado de "tomar solo el ord maximo" |
Cita:
|
La primera consulta que funciona bien es asi:
Esto me devuelve el nro de expediente y el orden maximo, es decir el ultimo movimiento.. (como vine explicando mas arriba) Ahora lo q necesitaria es tomar algunos datos mas del expediente.. campos como ser asunto, fecha, folios, etc. Si aplico como vos decis casimiro, agregando campos al select y al group by, ya no resulta el filtrado de la primera consulta. Y si, seguro necesito afianzarme en sql, pero por eso estoy aqui solicitando ayuda.. |
Es como he puesto antes, por eso te he dicho que pongas el código que has usado y que no te ha funcionado, para corregirlo.
|
OK, no me funciona.. no toma el (ord) mayor.. toma todo.
|
Cierto, hazlo entonces como ha indicado look
|
Hola Daragor.
Creo que la sugerencia de look(*) hace lo que buscas, si bién se puede acelerar un poco de este modo, ambas son consultas lentas, sobre solamente 5500 registros, la anterior(*) tardó 57.907s y esta 33.508s. Saludos. :) |
Cita:
Por eso intenté de la forma que puse antes, pero con más campos parece que no es posible, aunque tampoco me he entretenido mucho en probar. |
Hola ecfisa!! ud. como siempre poniendo claridad a los asuntos.. si, efectivamente funciona el codigo. Lo he usado y cumple, claro q es una situacion un poco complicada.. dado que aun debo filtrar por un rango de fecha y por un tipo de destino (osea un pase a un lugar determinado, no todos) pero bueno.. Muchas gracias compañero!!
|
y que tan lento o rápido es de esta forma??
|
RONPABLO, no tengo una base de datos con mas de 5000 registros ahora a mano para probar, seria bueno saber si optimizaste el codigo.. gracias por el aporte!
|
| La franja horaria es GMT +2. Ahora son las 21:38:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi