hola Grupo:
Tengo la siguiente consulta
declare @orden varchar(40)
set @orden='numtarjeta' -- ESTE PUEDE VENIR POR 'NumTarjeta' o
'FechaInscripcion'
select
dbo.FNumTarjeta(tblinscripciones.id_tipousuario,tblinscripciones.id_usuario)
as NumTarjeta, tblinscripciones.FechaInscripcion
from tblloquesea
ORDER BY case @Orden
when 'FechaInscripcion' then FechaInscripcion
when 'NumTarjeta' then
dbo.FNumTarjeta(tblinscripciones.id_tipousuario,tblinscripciones.id_usuario)
end
el caso es que asi me da este error:
Servidor: mensaje 295, nivel 16, estado 3, línea 3
Error de sintaxis al convertir una cadena de caracteres al tipo de datos
smalldatetime.
Sin embargo si formateo FechaInscripcion a convert(varchar(10),FechaInscripcion,103) en el 'case'
se arregla y me gustaria saber porque ????? ya que si la variable orden
me viene con 'FechaInscripcion' No da error de ninguna de las formas.
¿Tienen que ser del mismo tipo?¿entonces porque si me llega con
FechaInscripcion no da error?
Muchas Gracias a todos
Leer las respuestas