Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/04/2018, 09:08
Avatar de Libras
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: variables en subconsultas

Podrias separar las subconsultas:
Código SQL:
Ver original
  1. SELECT * FROM(
  2. SELECT
  3. c.crenumero
  4. , c.crefechgeneinte
  5. , isnull(pp3.Ti_UltCuoVen, 0) AS Ti_UltCuoVen
  6. , CASE isnull(pp3.Ti_UltCuoVen, 0) WHEN 0 THEN c.crefechgeneinte ELSE pp3.Sdt_FecUltCuoVen END AS Sdt_FecUltCuoVen
  7. , dia.D_IntCorCS
  8. FROM
  9. dbo.vistintecorr AS c
  10. LEFT OUTER JOIN (
  11. SELECT
  12. ppcuota AS Ti_UltCuoVen
  13. , ppfecha AS Sdt_FecUltCuoVen
  14. , crenumero
  15. FROM
  16. dbo.planpago
  17. WHERE
  18. ppfecha <= @Sdt_FecPag
  19. AND ppcuota = (
  20. SELECT MAX(ppcuota) FROM planpago AS ppn
  21. WHERE ppn.crenumero = dbo.planpago.crenumero
  22. AND ppfecha <= @Sdt_FecPag
  23. )
  24. ) AS pp3 ON pp3.crenumero = c.crenumero
  25. ) AS completa
  26.  
  27. LEFT OUTER JOIN (
  28. SELECT SUM(diavalointe - diaabonsubs) AS D_IntCorCS, crenumero
  29. FROM dbo.diario
  30. WHERE diaestado = 'CS'
  31. AND diafecha < (SELECT CASE isnull(Ti_UltCuoVen, 0) WHEN 0 THEN completa.crefechgeneinte ELSE pp.ppfecha END AS ppfecha
  32. FROM planpago AS pp
  33. WHERE pp.crenumero=dbo.diario.crenumero AND
  34. pp.ppfecha <= @Sdt_FecPag
  35. AND pp.ppcuota = (
  36. SELECT MAX(pp2.ppcuota) FROM planpago AS pp2
  37. WHERE completa.crenumero = dbo.diario.crenumero
  38. AND completa.ppfecha <= @Sdt_FecPag
  39. ))
  40. GROUP BY crenumero
  41. ) AS dia ON dia.crenumero = completa.crenumero
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me