Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

case when

Estas en el tema de case when en el foro de Bases de Datos General en Foros del Web. Esto no trabaja, por favor alquien tiene una mejor idea select CASE @PagoDesc WHEN 'CA' THEN select @Total_PAGOEFECTIVO = @Total_PAGOEFECTIVO + @montotemp WHEN 'CC' THEN ...
  #1 (permalink)  
Antiguo 13/05/2008, 09:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
case when

Esto no trabaja, por favor alquien tiene una mejor idea

select
CASE @PagoDesc
WHEN 'CA' THEN select @Total_PAGOEFECTIVO = @Total_PAGOEFECTIVO + @montotemp
WHEN 'CC' THEN select @Total_PAGOCREDITO = @Total_PAGOCREDITO + @montotemp
WHEN 'EX' THEN select @Total_PAGOCANJE = @Total_PAGOCANJE + @montotemp
WHEN 'MC' THEN select @Total_PAGOMCO = @Total_PAGOMCO + @montotemp
WHEN 'FD' THEN select @Total_PAGOFACTDIRECT = @Total_PAGOFACTDIRECT + @montotemp
WHEN 'AF' THEN select @Total_PAGOAFILIACION = @Total_PAGOAFILIACION + @montotemp
WHEN 'EO' THEN select @Total_PAGOCANJEOTRAS = @Total_PAGOCANJEOTRAS + @montotemp
ELSE select @Total_PAGOMCOOTRAS = @Total_PAGOMCOOTRAS + @montotemp
END

Gracias
  #2 (permalink)  
Antiguo 13/05/2008, 17:10
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: case when

Se me ocurre:
Código:
if @PagoDesc = 'CA' set @Total_PAGOEFECTIVO = @Total_PAGOEFECTIVO + @montotemp
if @PagoDesc = 'CC' set @Total_PAGOCREDITO = @Total_PAGOCREDITO + @montotemp
...
Si piensas un poco mas puede haber una forma mas corta ;)
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 14/05/2008, 12:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
Re: case when

Gracias por responder, la tenia antes con los if como me indicas, pero quiero usar los Case When por que la programacion es mas corta y supuestamente mas rapida la velocidad del SP. Anyway gracias de nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:44.