Cordial saludo.
Gracias por sus rapidas respuestas, esa consulta ya esta en un procedimiento almacenado; y se hace masivo; son mas o menos 60000 registros, entonces la idea es dejarlo en un solo select para que sea mas rapido el proceso.
El caso de Libras lo he utilizado concatenando las dos variables del select y separandolas en el select; me imagino que esta operacion consume mas recursos...
Código:
declare @fechhoy smalldatetime
declare @ConCuo int
declare @ultcuopag int
set @fechhoy = '2018-04-19'
set @ConCuo = 1
set @ultcuopag = 8
select
vic.crenumero
, vic.crefechgeneinte
, RTRIM(SUBSTRING(cuofec,1,CHARINDEX(',', cuofec)-1)) AS UltCuoVen
, RTRIM(SUBSTRING(cuofec, CHARINDEX(',', cuofec)+1, LEN(cuofec))) AS UltFecVen
from
vistintecorr as vic
outer apply(
select(
case
when @ConCuo > 0
then(
select
convert(varchar(2),pp4.ppcuota)+ ','+ convert(varchar(19),pp4.ppfecha,121) as cuofec
from
planpago as pp4
where
pp4.crenumero = vic.crenumero
and pp4.ppfecha <= @fechhoy
AND pp4.ppcuota = @ultcuopag
)
end
) as cuofec
) as pp3
WHERE
(vic.crenumero % 2) = 0
order by
vic.crenumero ASC
, vic.crefechgeneinte
Esto es optimo para consultas de mas de 50000 registros??