Thursday, February 23, 2017

Case When Else - If Else

Tengo la siguiente programación en Crystal Reports la cual necesité que traducirlo a SQL. Una solución fue como sigue a continuación (3 casos diferentes):

1.


case vIngresoDiario.IdcFormaPago 
 when 6 then
  case when (vIngresoDiario.IdcTipoCuota <> 27 and vIngresoDiario.IdcTipoCuota <> 230) then
   vIngresoDiario.MontoDetalle 
  else 
      ((vIngresoDiario.MontoDetalle) / (( 
     round((vIngresoDiario.PrimaTotal)*100/((vIngresoDiario.PrimaPura)+(vIngresoDiario.Adicionales)+(vIngresoDiario.Impuestos))-100,0) 
     * 0.01) +1)) end
  
 when 7 then
  case when vIngresoDiario.IdcTipoCuota =230 then
   (vIngresoDiario.MontoDetalle) / (vIngresoDiario.Interes * 0.01) +1 
  else
   case when vIngresoDiario.TipoTransp = 5 then
     (vIngresoDiario.MontoDetalle) / (vIngresoDiario.InteresPlanPago * 0.01) +1
   else
     ((vIngresoDiario.MontoDetalle) / (( 
     round((vIngresoDiario.PrimaTotal)*100/((vIngresoDiario.PrimaPura)+(vIngresoDiario.Adicionales)+(vIngresoDiario.Impuestos))-100,0) 
     * 0.01) +1)) end end
 end as  'PRIMA CONTADO'

2.

vIngresoDiario.AgenteBroker as 'AGENTE/BROKER', 
case 
 when vIngresoDiario.Numero  is not null 
 then convert(varchar(10),vIngresoDiario.Numero) + ' F'
 else
  convert(varchar(10), vIngresoDiario.NumeroRecibo) + ' R'
end as 'NRO FACTURA/RECIBO' ,

3.



case when 
 ABS(ROUND(vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100,2)-
 (vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100)) > 0.05
 then
  (vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100)
 else
   ROUND(vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100,2)
end as 'PorcComision',

Friday, February 17, 2017

Filtrar fecha sin hora - sql

Situación: Filtrar fecha sin hora.
Las fechas en nuestras tablas registran fecha y hora pero si deseamos consultar todos los datos cuyas fechas sean entre 01 de febrero a 15 de febrero si no le agregamos la hora (15/02/2017 23:59:59), no se filtrarán todos los datos que corresponden al día 15

Solución 1: utilizando el cast (campo as date)

WHERE cast(CTC.Fecha as date) between @pmfechaDesde and @pmfechaHasta

Monday, February 13, 2017

Error in File ... .rpt Operation not yet implemented

Error: Error in File ... .rpt Operation not yet implemented

Solución 1: Esta solución fue la adecuada para mi. El problema se trata de "incompatible fonts". Cambia la fuente de tu reporte a "Arial"


ExportFormatType' es ambiguo en el espacio de nombres 'CrystalDecisions.Shared

Error: ExportFormatType' es ambiguo en el espacio de nombres 'CrystalDecisions.Shared

Solución 1: Ve a tu Web.Config, es posible que tengas más de una referencia al Crystal. Quítala, sólo debes tener una - CrystalDecisions.Shared -