Campo Calculado

07/11/2009 - 19:56 por José A. Giménez [Py] | Informe spam
Saludos a todos. En un procedimiento almacenado hago varias comparaciones
para obtener un campo calculado.
Resulta que necesito calcular otro campo usando ese campo calculado, pero al
colocarlo en el código me dice que el nombre dela columna no se reconoce.
Necesito hacer esto:


CampoCalculado1 * CampodetablaC AS CampoCalculado2

Mi CampoCalculado1 resulta de varios cálculos y case anidados


Cómo puedo hacerlo?

GRACIAS!

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
07/11/2009 - 19:17 | Informe spam
Hola José,

On 7 nov, 19:56, José A. Giménez [Py] <gimenezj(arroba)hotmail(punto)
com> wrote:
Saludos a todos. En un procedimiento almacenado hago varias comparaciones
para obtener un campo calculado.
Resulta que necesito calcular otro campo usando ese campo calculado, pero al
colocarlo en el código me dice que el nombre dela columna no se reconoce.
Necesito hacer esto:

CampoCalculado1 * CampodetablaC AS CampoCalculado2

Mi CampoCalculado1 resulta de varios cálculos y  case anidados

Cómo puedo hacerlo?

GRACIAS!



Creo que vas a tener que dar mas detalles.
Mira este ejemplo donde si funciona:

declare @T table(
Campo1 int,
Campo2 int,
Campo3 int,
CampoCalculado1 as Campo1 + Campo2
)

insert into @T (Campo1, Campo2, Campo3)
select 1,2,3
union select 4,5,6
union select 7,8,9

select *,
CampoCalculado1 * Campo3 as CampoCalculado2
from @T

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Maxi Accotto
07/11/2009 - 20:22 | Informe spam
Hola, eso no es un campo calculado, es un alias calculada, un campo
calculado reside en la tabla, o sea si no quieres volver a escribirlo para
reutilizarlo debes hacerlo a nivel tabla con un campo calculado, sino
deberias reescribir el campo en tu query tantas veces lo necesites o bien
materializar la consulta en una tabla derivada



Maxi Accotto
MVP en SQL Server
http://blog.maxiaccotto.com

"José A. Giménez [Py]" <gimenezj(arroba)hotmail(punto)com> wrote in message
news:
Saludos a todos. En un procedimiento almacenado hago varias comparaciones
para obtener un campo calculado.
Resulta que necesito calcular otro campo usando ese campo calculado, pero
al colocarlo en el código me dice que el nombre dela columna no se
reconoce.
Necesito hacer esto:


CampoCalculado1 * CampodetablaC AS CampoCalculado2

Mi CampoCalculado1 resulta de varios cálculos y case anidados


Cómo puedo hacerlo?

GRACIAS!
Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
08/11/2009 - 01:50 | Informe spam
Hola José,

On 8 nov, 02:07, José A. Giménez [Py] <gimenezj(arroba)hotmail(punto)
com> wrote:
Gracias por las respuestas, opte por reescribir el calculo del campo otra
vez para obtener el segundo campo calculado.
Me llama la atención que no se pueda usar un alias en operaciones, en Access
podía hacerlo sin problemas.
Gracias nuevamente



A ver si te estoy entendiendo ahora.

Se puede hacer con subconsultas. Por ejemplo:

select
from
(select Campo1 as C1,
Campo2 as C2,
Campo1 + Campo2 as C3
from tabla
) T
where

group by
- y aquí

<etc.>

Vamos, que el resultado de la subconsunta es la tabla 'T' con
columnas C1, C2 y C3. C3 se puede reutilizar en la consulta
'exterior' todo lo que quieras (al igual que C1 y C2) aunque
la expresion Campo1 + Campo3 solo se ha escrito una vez.

Es eso lo que buscas?

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 José A. Giménez [Py]
08/11/2009 - 02:07 | Informe spam
Gracias por las respuestas, opte por reescribir el calculo del campo otra
vez para obtener el segundo campo calculado.
Me llama la atención que no se pueda usar un alias en operaciones, en Access
podía hacerlo sin problemas.
Gracias nuevamente
Respuesta Responder a este mensaje
#5 José A. Giménez [Py]
09/11/2009 - 15:45 | Informe spam
Si, gracias eso es lo buscaba, tener un alias que resulta de un calculo de
los campos de la tabla y poder usar ese mismo alias para hacer más cálculos
con los otros campos de mi tabla.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida