columnas calculadas distintas tablas

15/06/2004 - 13:39 por Jomaweb | Informe spam
Según la documentacion de SQL server se pueden realizar columnas calculadas
sobre campos que están en tablas diferentes siempre que exista una relación.

Yo intento definir una columna calculada en tabla2 del siguiente modo:

dateadd(day , tabla1.dias , tabla2.fecha)

pero no hay manera de que lo coja. Una de dos , o la sintaxis no la estoy
haciendo bien o no se pueden realizar columnas calculadas en base a
diferentes tablas.

¿qué falla?
 

Leer las respuestas

#1 Javier Loria
15/06/2004 - 15:28 | Informe spam
Hola:
Las columnas calculadas de una Tabla SIEMPRE provienen de operaciones de
columnas de la misma Tabla, constantes y/o funciones. No es posible logra lo
que deseas directamente.
Si es posible hacerlo por medio de una funcion a la cual le pasas el
parametro necesario para hacer un JOIN o un WHERE sobre la Tabla y devuelves
el valor de la columna deseada.
A pesar de que es posible hacer esto es ALTAMENTE recomendado que no lo
hagas asi, porque es muy lento ya que obligas al servidor ha hacer un SELECT
por cada fila de la Tabla.
Normalmente es mejor hacer una vista con los calculos. Es ma rapido, mas
facil darle mantenimiento y totalmente compatible entre versiones.
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.

Jomaweb escribio:
Según la documentacion de SQL server se pueden realizar columnas
calculadas sobre campos que están en tablas diferentes siempre que
exista una relación.

Yo intento definir una columna calculada en tabla2 del siguiente modo:

dateadd(day , tabla1.dias , tabla2.fecha)

pero no hay manera de que lo coja. Una de dos , o la sintaxis no la
estoy haciendo bien o no se pueden realizar columnas calculadas en
base a diferentes tablas.

¿qué falla?

Preguntas similares