Cordial saludo
Estoy trabajando con Sql server 2014 y tengo el siguient script el cual si le coloco el group by al query no me arroja ni cero caso contrario cuando se lo quito si aparece 0.
En mi caso es necesario ya que esta consulta la necesito hacer en un join y dependiendo del case hace el select respectivo y no entiendo porque nunca ejecuta el case.
En el caso del crenumero que esta en el ejemplo me trae
ValoSeguVida
Pero si le quito el group by si sale
ValoSeguVida
0
Código SQL:
Ver originalDECLARE @crenumero INT
DECLARE @fechSist smalldatetime
SET @crenumero = 23455
SET @fechSist = '2018-06-21'
DECLARE @periCier INT
DECLARE @periActu INT
DECLARE @fechCier SMALLDATETIME
DECLARE @fechActu SMALLDATETIME
--obtenemos la fecha del sistemas menos un mes
SET @fechCier = CONVERT ( VARCHAR (10), DATEADD(MONTH, -1, @fechSist), 101)
--obtemos el último periodo que se han causado seguro de vida
SET @periCier = CONVERT ( CHAR (4), datepart(YEAR, @fechCier)) + '' + CONVERT ( CHAR (2), datepart(MONTH, @fechCier))
SELECT
CASE WHEN COUNT(*) = 0
THEN(
SELECT
SUM(rpsvsaldosegurovida)
FROM
dbo.fin_reportepagosegurovida
WHERE
crenumero = @crenumero
AND rpsperiodocorte < @periCier
)
ELSE(
SELECT
SUM(rpsvsaldosegurovida)
FROM
dbo.fin_reportepagosegurovida
WHERE
crenumero = @crenumero
)
END AS ValoSeguVida
FROM
fin_planpago AS ppsv
WHERE
ppsv.ppfecha <= @fechActu
AND ppsv.crenumero = @crenumero
AND CONVERT ( CHAR (4), datepart(YEAR, ppsv.ppfecha)) + '' + CONVERT ( CHAR (2), datepart(MONTH, ppsv.ppfecha)) = @periActu
GROUP BY ppsv.crenumero
[/QUOTE]
Agradezco de antemano las sugerencias y ayudas que me puedan brindar