Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Maxima Cuota y la anterior

Estas en el tema de Maxima Cuota y la anterior en el foro de SQL Server en Foros del Web. Buenas amigos, tengo una tabla con 2 campos: NRO_PREST (Numero de prestamo) y VTO_CUOTA (Vencimiento de la cuota) dada de la sgte manera: 900681 01/04/2013 ...
  #1 (permalink)  
Antiguo 06/01/2014, 08:21
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Maxima Cuota y la anterior

Buenas amigos, tengo una tabla con 2 campos: NRO_PREST (Numero de prestamo) y VTO_CUOTA (Vencimiento de la cuota) dada de la sgte manera:

900681 01/04/2013
900681 01/05/2013
900681 01/06/2013
900525 04/03/2010
900525 05/04/2010

Necesito quedarme de cada uno de los prestamos la cuota maxima y la anterior.

Espero su ayuda y comentarios.

Gracias

damimg
  #2 (permalink)  
Antiguo 06/01/2014, 08:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Maxima Cuota y la anterior

tomando en cuenta que campo???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 06/01/2014, 08:45
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Maxima Cuota y la anterior

Cita:
Iniciado por Libras Ver Mensaje
tomando en cuenta que campo???
La query debe devolver:

NRO_PREST ULT_CUOTA PENULTIMA_CUOTA
  #4 (permalink)  
Antiguo 06/01/2014, 11:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Maxima Cuota y la anterior

¿En que versión de SQL Server?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 06/01/2014, 11:38
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Maxima Cuota y la anterior

Cita:
Iniciado por iislas Ver Mensaje
¿en que versión de sql server?
2008 r2
  #6 (permalink)  
Antiguo 06/01/2014, 12:32
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Maxima Cuota y la anterior

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. fecha datetime
  5. )
  6.  
  7. INSERT INTO #temp VALUES (900681,'01/04/2013')
  8. INSERT INTO #temp VALUES (900681,'01/05/2013')
  9. INSERT INTO #temp VALUES (900681,'01/06/2013')
  10. INSERT INTO #temp VALUES (900525,'04/03/2010')
  11. INSERT INTO #temp VALUES (900525,'01/02/2010')
  12. INSERT INTO #temp VALUES (900526,'01/03/2010')
  13. INSERT INTO #temp VALUES (900526,'01/04/2010')
  14. INSERT INTO #temp VALUES (900526,'01/05/2010')
  15. INSERT INTO #temp VALUES (900526,'01/06/2010')
  16.  
  17.  
  18. SELECT * FROM(
  19. SELECT ROW_NUMBER() OVER(partition BY id ORDER BY fecha) AS rn,* FROM #temp
  20. ) AS t1 LEFT JOIN
  21. (SELECT ROW_NUMBER() OVER(partition BY id ORDER BY fecha) AS rn,* FROM #temp) AS t2 ON (t1.id=t2.id AND (t1.rn-1)=t2.rn)
  22. WHERE t2.id IS NOT NULL AND CONVERT(VARCHAR(20),t1.rn) + '|' + CONVERT(VARCHAR(20),t1.id) IN (SELECT CONVERT(VARCHAR(20),MAX(rn))  + '|' + CONVERT(VARCHAR(20),id) FROM(
  23. SELECT ROW_NUMBER() OVER(partition BY id ORDER BY fecha) AS rn,* FROM #temp) AS t1 GROUP BY id)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 06/01/2014, 12:59
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Maxima Cuota y la anterior

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. fecha datetime
  5. )
  6.  
  7. INSERT INTO #temp VALUES (900681,'01/04/2013')
  8. INSERT INTO #temp VALUES (900681,'01/05/2013')
  9. INSERT INTO #temp VALUES (900681,'01/06/2013')
  10. INSERT INTO #temp VALUES (900525,'04/03/2010')
  11. INSERT INTO #temp VALUES (900525,'01/02/2010')
  12. INSERT INTO #temp VALUES (900526,'01/03/2010')
  13. INSERT INTO #temp VALUES (900526,'01/04/2010')
  14. INSERT INTO #temp VALUES (900526,'01/05/2010')
  15. INSERT INTO #temp VALUES (900526,'01/06/2010')
  16.  
  17.  
  18. SELECT * FROM(
  19. SELECT ROW_NUMBER() OVER(partition BY id ORDER BY fecha) AS rn,* FROM #temp
  20. ) AS t1 LEFT JOIN
  21. (SELECT ROW_NUMBER() OVER(partition BY id ORDER BY fecha) AS rn,* FROM #temp) AS t2 ON (t1.id=t2.id AND (t1.rn-1)=t2.rn)
  22. WHERE t2.id IS NOT NULL AND CONVERT(VARCHAR(20),t1.rn) + '|' + CONVERT(VARCHAR(20),t1.id) IN (SELECT CONVERT(VARCHAR(20),MAX(rn))  + '|' + CONVERT(VARCHAR(20),id) FROM(
  23. SELECT ROW_NUMBER() OVER(partition BY id ORDER BY fecha) AS rn,* FROM #temp) AS t1 GROUP BY id)
Gracias Libras, se podría aplicar lo mismo si el motor fuese Oracle?
  #8 (permalink)  
Antiguo 06/01/2014, 13:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Maxima Cuota y la anterior

Lastima de esfuerzo, creo que no, ya que dudo mucho que Oracle cuente con un ROW_NUMBER() OVER (PARTITION......)
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 06/01/2014, 13:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Maxima Cuota y la anterior

Cita:
Iniciado por damimg Ver Mensaje
Gracias Libras, se podría aplicar lo mismo si el motor fuese Oracle?
te preguntaron que motor era y djiste sql server 2008, si podrias aplicar algo parecido, digo si quieres usar la misma logica solo buscando como aplicarlo en oracle :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 07/01/2014, 07:41
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Maxima Cuota y la anterior

Muchas gracias a ambos por la ayuda, una forma mas simple existe sin tener que jugar con el ROW_NUMBER() ???
  #11 (permalink)  
Antiguo 07/01/2014, 10:10
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Maxima Cuota y la anterior

¿En ORACLE?, lo ignoro, seguramente si vas a ese grupo y preguntas, recibirás buenos consejos
__________________
MCTS Isaias Islas
  #12 (permalink)  
Antiguo 07/01/2014, 10:21
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Maxima Cuota y la anterior

Cita:
Iniciado por damimg Ver Mensaje
Muchas gracias a ambos por la ayuda, una forma mas simple existe sin tener que jugar con el ROW_NUMBER() ???
Lo mas seguro es que si, pero row_number me simplifico muchas cosas asi que seria una consulta un poco mas compleja pero sin row_number :P, o sea tu quieres masticado y en la boca :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 07/01/2014, 11:52
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Maxima Cuota y la anterior

Cita:
Iniciado por Libras Ver Mensaje
Lo mas seguro es que si, pero row_number me simplifico muchas cosas asi que seria una consulta un poco mas compleja pero sin row_number :P, o sea tu quieres masticado y en la boca :P
jaja igualmente agradezco tu query compleja libras
  #14 (permalink)  
Antiguo 07/01/2014, 12:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Maxima Cuota y la anterior

si se te hace muy complejo obten tu uno mas simple.......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:24.