• Viernes 8 de Noviembre de 2024, 19:37

Autor Tema:  Consulta A Una Tabla  (Leído 8556 veces)

Dieguinho.

  • Miembro MUY activo
  • ***
  • Mensajes: 163
    • Ver Perfil
Re: Consulta A Una Tabla
« Respuesta #25 en: Jueves 1 de Febrero de 2007, 20:17 »
0
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

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Consulta A Una Tabla
« Respuesta #26 en: Jueves 1 de Febrero de 2007, 20:28 »
0
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
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Consulta A Una Tabla
« Respuesta #27 en: Jueves 8 de Febrero de 2007, 16:05 »
0
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-->
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Dieguinho.

  • Miembro MUY activo
  • ***
  • Mensajes: 163
    • Ver Perfil
Re: Consulta A Una Tabla
« Respuesta #28 en: Jueves 17 de Julio de 2008, 16:41 »
0
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
  1. SELECT P.IdPDV,B.FechaBackup,B.FechaIngreso,B.Observacion
  2. FROM PDV P LEFT JOIN BackupPDV B ON B.IdPDV = P.IdPDV
  3. WHERE B.FechaBackup = (SELECT MAX (B2.FechaBackup)
  4.                        FROM BackupPDV B2
  5.                        WHERE B2.IdPDV = B.IdPDV)  
  6.                        OR (B.FechaBackup IS NULL)
  7. ORDER BY B.IdPDV
  8.  

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!