Bases de Datos > SQL Server
Consulta A Una Tabla
JuanK:
Insisto en que lo que haces no tiene sentido, pero bueno esta es la solución si usas Oracle, sino usas oracle sera muy parecida pero deberás reemplazar la palabra ROWNUM con la que sea necesaria en la BD que usas para limitar el numero de filas de la consulta.
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->SELECT con1.*, (SELECT b.observacion
FROM backuppdv b
WHERE a.idpdv = b.idpdv
AND ROWNUM = 1) AS observacion
FROM (SELECT idpdv, MAX (fechabackup)
FROM backuppdv a
GROUP BY a.idpdv
ORDER BY a.idpdv) con1<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
A_LEX:
--- Citar --- va queriendo, pero...
Funciona bien si tengo fechas diferentes, pero si tengo muchas fechas iguales en la tabla, ya me empieza a tirar mas de un registro de cada tipo.
Copio nuevamente la consulta con los nombres de campo verdaderos, asi resulta mas facil probarla.
--- Fin de la cita ---
Pues eso cambia el esquema que interpreté de los datos originales que presentaste.
¿Alguna otro dato o condición que estes omitiendo?
Saludos.
Dieguinho.:
Creo que no. Igual lo pongo de nuevo por las dudas.
La tabla (BackupPDV) seria asi.
--- Código: Text --- Nombre de columna Tipo de dato LongitudIdPDV nvarchar 3FechaBackup datetime 8Observacion nvarchar 50
y este seria un ejemplo de algunos datos:
--- Código: Text --- I30 01/10/2005 OK I45 01/12/2006 OK I45 01/01/2007 OK I45 02/01/2007 OK I45 03/01/2007 OK I90 05/01/2007 OK I30 29/01/2007 Muy bien I30 29/01/2007 Muy bien 905 05/01/2007 OK 911 05/01/2007 OK 917 05/01/2007 OK 918 05/01/2007 OK 926 05/01/2007 OK 974 05/01/2007 OK 975 01/01/2006 OK I76 20/01/2007 OK I77 20/01/2007 OK I80 14/01/2007 OK I85 22/01/2007 OK I10 29/01/2007 Backup ok I15 29/01/2007 Backup ok I16 29/01/2007 Backup ok I30 29/01/2007 Muy bien
Y lo que necesitaba era de estos datos traer unicamente 1 registro por IdPDV junto con su fecha (que sea el de fecha mas actual) y el campo observacion. Ordenado por IdPDV
Creo que ahi no me falto mas nada explicar.
Llegado el caso que no haya ninguna consulta que lo resuelva hago dos tablas y cada vez que ingrese un registro lo pongo en una tabla y el que estaba, que ya seria viejo lo paso a otra donde los acumulo y listo. No se, otra cosa no se me ocurre.
Que opinan?
JuanK:
la consulta que te puse lo resuelve 100% desde que sepas cual es el equivalente a la palabra clave RowNum en la bd que usas.
ElNapster:
JuanK, en Oracle cual es la funcion del RowNum ?
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa