SQL - Para un Experto(a) - Creacion de vistas Sql Server

 
Vista:

Para un Experto(a) - Creacion de vistas Sql Server

Publicado por Jackeline (1 intervención) el 21/04/2001 01:55:18
Estoy creando una vista usando union de dos selects, cuando el select es de una tabla se crea la vista, cuando el select es de dos o más tablas me sale este mensaje de error:

Server: Msg 209, Level 16, State 1, Procedure VW_CAJ_GARANTIAS, Line 2
Ambiguous column name COD_CDP

¿El Sql server permite la creacion de vistas usando union de selects que utilizan mas de una tabla?

Nota: Cuando ejecuto el select de uniones(de 4 tablas) en el Query funciona correctamente, falla cuando se le desea crear en una vista

Ejm: Esto funciona correctamente
CREATE VIEW VW_CAJ_GARANTIAS
AS
SELECT TAS_PRF_CDP AS CODIGO FROM MAE_CDP WHERE COD_MONEDA='01'
UNION
SELECT TAS_PRF_CDP FROM MAE_CDP WHERE COD_MONEDA='02'
pero si le añado una tabla mas a cada select ya no funciona
Saldria este error:
Ambiguous column name TAS_PRF_CDP
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio

RE:Para un Experto(a) - Creacion de vistas Sql Ser

Publicado por Wilfredo Patricio (3 intervenciones) el 21/04/2001 18:53:55
Hola Jacky

Mira no soy un experto en SQL, pero me parece que tu error está en los nombres de los campos si utilizas campos de dos o mas tablas que tengan el mismo nombre, debes hacer algo asi:

Select tabla1.codigo as Codigo1, tabla2.codigo as codigo2,tabla3.codigo as codigo3 , etc.
para poder diferencias los campos en la vista, porque de lo contrario la vista no sabrá a cual compo codigo de que tabla referirse.

Y debes referirte asi tambien en el Where.

Espero te sirva de algo.

Atentamente,

Wilfredo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para un Experto(a) - Creacion de vistas Sql Ser

Publicado por Edwin Huamán Garay (2 intervenciones) el 23/04/2001 22:13:43
me parece que la solución es más simple de lo que piensas, cuando generas el scrip tienes que hacerlo de la siguiente forma:

Select Tabla1.Campo1
Donde Tabla1 es el nombre de la tabla y campo1 es el campo que se supone tiene el mismo nombre el las tablas que intervienen en tu consulta.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar