Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2018, 19:23
tattojk
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Pregunta No me arroja el resultado de un case count

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 original
  1. DECLARE @crenumero INT
  2.     DECLARE @fechSist smalldatetime
  3.     SET @crenumero = 23455
  4.     SET @fechSist = '2018-06-21'
  5.  
  6.     DECLARE @periCier INT
  7.     DECLARE @periActu INT
  8.     DECLARE @fechCier SMALLDATETIME
  9.     DECLARE @fechActu SMALLDATETIME
  10.  
  11.         --obtenemos la fecha del sistemas menos un mes
  12.     SET @fechCier = CONVERT ( VARCHAR (10), DATEADD(MONTH, -1, @fechSist), 101)
  13.     --obtemos el último periodo que se han causado seguro de vida
  14.     SET @periCier = CONVERT ( CHAR (4), datepart(YEAR, @fechCier)) + '' + CONVERT ( CHAR (2), datepart(MONTH, @fechCier))
  15.  
  16.  
  17.     SELECT
  18.         CASE WHEN COUNT(*)  = 0
  19.             THEN(      
  20.                 SELECT
  21.                     SUM(rpsvsaldosegurovida)
  22.                 FROM
  23.                     dbo.fin_reportepagosegurovida
  24.                 WHERE
  25.                     crenumero = @crenumero
  26.                     AND rpsperiodocorte < @periCier
  27.             )
  28.             ELSE(
  29.                 SELECT
  30.                     SUM(rpsvsaldosegurovida)
  31.                 FROM
  32.                     dbo.fin_reportepagosegurovida
  33.                 WHERE
  34.                 crenumero = @crenumero
  35.             )
  36.         END AS ValoSeguVida
  37.     FROM
  38.         fin_planpago AS ppsv
  39.     WHERE
  40.         ppsv.ppfecha <= @fechActu
  41.         AND ppsv.crenumero = @crenumero
  42.         AND CONVERT ( CHAR (4), datepart(YEAR, ppsv.ppfecha)) + '' + CONVERT ( CHAR (2), datepart(MONTH, ppsv.ppfecha)) = @periActu
  43.     GROUP BY ppsv.crenumero
[/QUOTE]

Agradezco de antemano las sugerencias y ayudas que me puedan brindar

Última edición por gnzsoloyo; 29/06/2018 a las 07:44