Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/01/2015, 15:55
wilmer30
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Detener con un flag el patron de una consulta

claro que si, sin embargo había comentado que únicamente cuando el último registro sea "C" el patron debe ser abandonado (el abadonar no significa que debe terminar la consulta únicamente debe saltar la consulta del cod_prestamo y cod_usuario)

Código SQL:
Ver original
  1. SELECT Cod_usuario,Cod_Prestamo FROM ArchivoSocias WHERE Cod_Usuario = '0101LCE3003911' AND Cod_Prestamo = '0101-259-01-07-00016'
  2. SELECT Cod_Prestamo,Fecha_Pago,Nro_Cuota FROM Fechas_Pago WHERE Cod_Prestamo = '0101-259-01-07-00016'
  3. SELECT Cod_Usuario,Cod_prestamo,Fecha_SPP,Fecha_Efectiva,Nro_Cuota,Tipo_Pago FROM ArchivoPS WHERE Cod_Usuario = '0101LCE3003911' AND Cod_Prestamo = '0101-259-01-07-00016'

para obtener lo que quiero uso tres tablas que como resultado tengo lo siguiente
Código SQL:
Ver original
  1. Cod_usuario Cod_Prestamo
  2. 0101LCE3003911  0101-259-01-07-00016
Código SQL:
Ver original
  1. Cod_Prestamo    Fecha_Pago  Nro_Cuota
  2. 0101-259-01-07-00016    2014-06-06 00:00:00.000 1
  3. 0101-259-01-07-00016    2014-07-04 00:00:00.000 2
  4. 0101-259-01-07-00016    2014-08-01 00:00:00.000 3
  5. 0101-259-01-07-00016    2014-08-29 00:00:00.000 4
  6. 0101-259-01-07-00016    2014-09-26 00:00:00.000 5
  7. 0101-259-01-07-00016    2014-10-24 00:00:00.000 6
Código SQL:
Ver original
  1. Cod_Usuario Cod_prestamo    Fecha_SPP   Fecha_Efectiva  Nro_Cuota   Tipo_Pago
  2. 0101LCE3003911  0101-259-01-07-00016    2014-06-06 00:00:00.000 2014-06-06 00:00:00.000 1   P
  3. 0101LCE3003911  0101-259-01-07-00016    2014-07-04 00:00:00.000 2014-08-30 00:00:00.000 2   P
  4. 0101LCE3003911  0101-259-01-07-00016    2014-08-01 00:00:00.000 2014-08-30 00:00:00.000 3   P
  5. 0101LCE3003911  0101-259-01-07-00016    2014-08-29 00:00:00.000 2014-08-30 00:00:00.000 4   C

y mi consulta final sería:
Código SQL:
Ver original
  1. SELECT aux.Cod_Usuario,aux.Cod_Prestamo,aux.Fecha_Pago,aux.Nro_Cuota,a.Fecha_Efectiva,a.Tipo_Pago
  2. FROM (SELECT aso.Cod_Regional, aso.Cod_usuario,aso.Cod_prestamo,p.Fecha_Pago,p.Nro_Cuota
  3. FROM Fechas_Pago p JOIN ArchivoSocias aso ON (p.Cod_Prestamo = aso.Cod_Prestamo)
  4. WHERE
  5.  aso.Prima > 0 ) AS aux
  6. LEFT JOIN ArchivoPS a
  7. ON (aux.Cod_Prestamo = a.Cod_prestamo AND aux.Cod_Usuario = a.Cod_Usuario AND aux.Nro_Cuota = a.Nro_Cuota)
  8. WHERE
  9.     aux.Cod_Usuario IN ('0101LCE3003911')
  10. ORDER BY aux.Cod_Prestamo

el resultado:
Código SQL:
Ver original
  1. Cod_Usuario Cod_Prestamo    Fecha_Pago  Nro_Cuota   Fecha_Efectiva  Tipo_Pago
  2. 0101LCE3003911  0101-259-01-07-00016        2014-06-06 00:00:00.000 1   2014-06-06 00:00:00.000 P
  3. 0101LCE3003911  0101-259-01-07-00016        2014-07-04 00:00:00.000 2   2014-08-30 00:00:00.000 P
  4. 0101LCE3003911  0101-259-01-07-00016        2014-08-01 00:00:00.000 3   2014-08-30 00:00:00.000 P
  5. 0101LCE3003911  0101-259-01-07-00016        2014-08-29 00:00:00.000 4   2014-08-30 00:00:00.000 C
  6. 0101LCE3003911  0101-259-01-07-00016        2014-09-26 00:00:00.000 5   NULL    NULL
  7. 0101LCE3003911  0101-259-01-07-00016        2014-10-24 00:00:00.000 6   NULL    NULL

En este caso como el registro 4 tiene en la columna Tipo_Pago = "C" no debe mostrar los registros 5 y 6. Pero si Tipo_Pago fuera "P" debería mostrar los registros