Error SQL-T Case

13/10/2005 - 17:37 por aventurero | Informe spam
Buenas amigos del foro.

Me pueden ayudar en decirme en indicarme el error:
Sintaxis incorrecta cerca de la palabra clave case

declare @codigo_compania tinyint
declare @tarifas_incluidas tinyint

set @codigo_compania = 251
set @tarifas_incluidas = 3

insert into TablaCcia (Id, formato)
select id, formato from TablaSerie where estado = 'V' and
codigo_compania = @codigo_compania
and convert(char(1),tarifa /10) in
case @tarifas_incluidas
when 0 then ('1','2','3','4','5','6','7','8','9')
when 1 then ('2','3','4','5','6','7','8','9')
else ('1')
end

pd: si lo hago sin el case funciona bien

Gracias,


Aventurero

Preguntas similare

Leer las respuestas

#1 Isaias
13/10/2005 - 19:07 | Informe spam
Si la columna @tarifas_incluidas es de tipo INT (numerico), es preferible
hacer un BETWEEN, creo.

Saludos
IIslas


"" escribió:

Buenas amigos del foro.

Me pueden ayudar en decirme en indicarme el error:
Sintaxis incorrecta cerca de la palabra clave case

declare @codigo_compania tinyint
declare @tarifas_incluidas tinyint

set @codigo_compania = 251
set @tarifas_incluidas = 3

insert into TablaCcia (Id, formato)
select id, formato from TablaSerie where estado = 'V' and
codigo_compania = @codigo_compania
and convert(char(1),tarifa /10) in
case @tarifas_incluidas
when 0 then ('1','2','3','4','5','6','7','8','9')
when 1 then ('2','3','4','5','6','7','8','9')
else ('1')
end

pd: si lo hago sin el case funciona bien

Gracias,


Aventurero



Respuesta Responder a este mensaje
#2 Saul Batista
14/10/2005 - 12:47 | Informe spam
el problema es que no puedes utilizar el CASE dentro de un WHERE.

Saul Batista


"" wrote in message
news:
Buenas amigos del foro.

Me pueden ayudar en decirme en indicarme el error:
Sintaxis incorrecta cerca de la palabra clave case

declare @codigo_compania tinyint
declare @tarifas_incluidas tinyint

set @codigo_compania = 251
set @tarifas_incluidas = 3

insert into TablaCcia (Id, formato)
select id, formato from TablaSerie where estado = 'V' and
codigo_compania = @codigo_compania
and convert(char(1),tarifa /10) in
case @tarifas_incluidas
when 0 then ('1','2','3','4','5','6','7','8','9')
when 1 then ('2','3','4','5','6','7','8','9')
else ('1')
end

pd: si lo hago sin el case funciona bien

Gracias,


Aventurero


Respuesta Responder a este mensaje
#3 Liliana Sorrentino
14/10/2005 - 19:00 | Informe spam
Hola,
Fijate así, no se puede combinar IN con CASE en este caso, aunque sí puede
usarse CASE en un WHERE:

select id, formato
from TablaSerie
where estado = 'V'
and codigo_compania = @codigo_compania
and ((@tarifas_incluidas = 0 and tarifa /10 in (1,2,3,4,5,6,7,8,9))
or (@tarifas_incluidas = 1 and tarifa /10 in (2,3,4,5,6,7,8,9))
or (@tarifas_incluidas > 1 and tarifa /10 = 1))

Saludos, Liliana.

"" escribió en el mensaje
news:
Buenas amigos del foro.

Me pueden ayudar en decirme en indicarme el error:
Sintaxis incorrecta cerca de la palabra clave case

declare @codigo_compania tinyint
declare @tarifas_incluidas tinyint

set @codigo_compania = 251
set @tarifas_incluidas = 3

insert into TablaCcia (Id, formato)
select id, formato from TablaSerie where estado = 'V' and
codigo_compania = @codigo_compania
and convert(char(1),tarifa /10) in
case @tarifas_incluidas
when 0 then ('1','2','3','4','5','6','7','8','9')
when 1 then ('2','3','4','5','6','7','8','9')
else ('1')
end

pd: si lo hago sin el case funciona bien

Gracias,


Aventurero


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida