campo = case ...

04/06/2004 - 17:03 por Ezequiel | Informe spam
hola grupo, tengo en un select el siguiente codigo:

select campo1 = case
...
...
end,
campo2 = case
when ...
then campo1 + 100
end,

Me da error de columna invalida campo1, que seria el campo
creado con anterioridad, como puedo hacer para poder
utilizar el campo1 y que no me de este error, gracias.

Preguntas similare

Leer las respuestas

#1 Maxi
04/06/2004 - 17:08 | Informe spam
Hola pero ahi no podras usar campos sino variables!! que es lo que ese Query
necesita resolver?




Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Ezequiel" escribió en el mensaje
news:1821101c44a45$0e48d6f0$
hola grupo, tengo en un select el siguiente codigo:

select campo1 = case
...
...
end,
campo2 = case
when ...
then campo1 + 100
end,

Me da error de columna invalida campo1, que seria el campo
creado con anterioridad, como puedo hacer para poder
utilizar el campo1 y que no me de este error, gracias.








Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004
Respuesta Responder a este mensaje
#2 Javier Loria
05/06/2004 - 10:16 | Informe spam
Hola Ezequiel:
El SQL no permite que reutilices los Alias de las columnas de una
consulta como si fueran variables.
Esto significa que "campo1" es solamente el titulo de la columna, pero
no puede usarse para hacer calculos, o en el Where, group by, etc.
Eso significa que tienes pocas alternativas:
a) Reescribir el CASE del campo1.
b) Crear una funcion y utilizar la funcion en varios lugares haciendo el el
codigo mas legible y un poco mas facil de mantener.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Ezequiel escribio:
hola grupo, tengo en un select el siguiente codigo:

select campo1 = case
...
...
end,
campo2 = case
when ...
then campo1 + 100
end,

Me da error de columna invalida campo1, que seria el campo
creado con anterioridad, como puedo hacer para poder
utilizar el campo1 y que no me de este error, gracias.
Respuesta Responder a este mensaje
#3 Jose Mariano Alvarez \(MUG\)
06/06/2004 - 07:45 | Informe spam
Las variables no te sirven
Puedes usar una tabla derivada si no quieres usar funciones.
Eso sí, recorre cada registro dos veces mientras que con funciones solo una.



SELECT
campo1,
case
when ... then campo1 + 100
else campo1
end campo2
FROM (
select
case
...
...
end campo1,
from tabla
) Tabla_derivada



Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


"Ezequiel" wrote in message
news:1821101c44a45$0e48d6f0$
hola grupo, tengo en un select el siguiente codigo:

select campo1 = case
...
...
end,
campo2 = case
when ...
then campo1 + 100
end,

Me da error de columna invalida campo1, que seria el campo
creado con anterioridad, como puedo hacer para poder
utilizar el campo1 y que no me de este error, gracias.








Revisado por AVG

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 03/06/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida