Bases de Datos > SQL Server
Consulta A Una Tabla
Dieguinho.:
Por lo que estuve viendo por la red dicen que no existe en SQL la funcion ROWNUM.
Pero que se puede simular, por lo que entendi, agregando una columna mas a la tabla.
Si quieren ver exactamente que es lo que vi esta aca:
Link
Asi que agregare una columna mas en la tabla en donde pondre un 1 para identificar que es el ultimo o un 0 si es anterior.
Y antes de agregar un registro a la BD le pondre un 0 al que tenga el 1 e ingresare el nuevo registro con el nro. 1.
No se si me explico.
Y si me explico espero que sea una buena solucion?
o esta muy mal?
si no migro a oracle!
JuanK:
Si eso estaba leyendo, acá hay una alternativa, tendrías que usar un SELECT más.
http://support.microsoft.com/default.aspx?...B;EN-US;q186133
Lo mas los esq ue seria muchisisisimo mas esfuerzo en la BD lo cual es contrario a la filosofía de usar RowNum, pero ni modo.
Hay dos opciones desolucion, una es tener una vista con los consecutivos previamente generados, la otra es volver un poco mas complejo el select ols select de acuerdo al doc anterior...
no se... cambiate a oracle o sino has lo de la vista.... o usaTsql etc
JuanK:
de acuerdo a este hilo en el foro, entiendo que si hay rownum en sql server 2005
http://foros.solocodigo.com/index.php?showtopic=26985#
por lo cual la solucion que yo di deberia funcionar, haciendo las modificaciones del caso
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] con1.*, ([color=blue;font-weight]SELECT[/color] b.observacion
FROM backuppdv b
WHERE a.idpdv = b.idpdv AND ROWNUM = 1) AS observacion
FROM ([color=blue;font-weight]SELECT[/color] idpdv, MAX (fechabackup)
FROM backuppdv a
GROUP BY a.idpdv
ORDER BY a.idpdv) con1 <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Dieguinho.:
Buenas,
Se que paso tiempo desde la ultima respuesta, pero buscando algo en el foro llegue nuevamente a este post que habia realizado y me di cuenta que al final nunca puse la respuesta que encontre.
Asi que pido disculpas por la demora y dejo la solucion.
la consulta para que me muestre lo que queria finalmente era asi:
--- Código: Text ---SELECT P.IdPDV,B.FechaBackup,B.FechaIngreso,B.Observacion FROM PDV P LEFT JOIN BackupPDV B ON B.IdPDV = P.IdPDVWHERE B.FechaBackup = (SELECT MAX (B2.FechaBackup) FROM BackupPDV B2 WHERE B2.IdPDV = B.IdPDV) OR (B.FechaBackup IS NULL) ORDER BY B.IdPDV
Con este query me muestra de los 28 pdvs que hay en la tabla pdv el ultimo backup ingresado de cada uno en la tabla backupPDV y si hay alguno null trae el null.
bueno eso es todo
saludos!
Navegación
[*] Página Anterior
Ir a la versión completa