none
Nombre de columna ambiguo RRS feed

  • Pregunta

  • hola buen día, espero se encuentren muy bien tengo un problema 

    estoy realizando una consulta pero me arroja el siguiente error:

    SELECT x.UserName
    			 ,b.WFMovimientoFechaIni
    			 ,b.WFMovimientoFechaFin
    			 ,b.ActividadLogCodigo
    			 ,case when b.GrupoCodigo =  1 then 'Radicado' else 'Registro' end  AS GrupoCodigo
    			 ,b.ModuloLog
    			 ,cast(null as varchar) as DatosIniciales
    			 ,b.DatosFinales
    			 ,b.Ip
    			 ,b.NombreEquipo
    			 ,b.Navegador
    			 , cast(null as varchar) as Numerodocumento
    			 FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b
    			 join aspnet_Users as x
    on CONVERT(varchar(100), x.UserId) = b.UserId where 1=1   AND UserName = 'administrator' 
    
    UNION 
    	   SELECT x.UserName
    	   ,c.WFMovimientoFechaIni
    	   ,c.WFMovimientoFechaFin
    	   ,c.ActividadLogCodigo
    	   ,case when c.GrupoCodigo =  1 then 'Radicado' else 'Registro' end  AS GrupoCodigo
    	   ,c.ModuloLog
    	   ,c.Datosiniciales
    	   ,c.DatosFinales
    	   ,c.Ip
    	   ,c.NombreEquipo
    	   ,c.Navegador 
    	   ,cast(null as varchar) as Numerodocumento
    	   FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c
    	  join aspnet_Users as x
    on CONVERT(varchar(100), x.UserId) = c.UserId where 1=1   AND UserName = 'administrator'
    
    UNION 
    	   SELECT x.UserName
    	   ,a.WFMovimientoFechaIni
    	   ,a.WFMovimientoFechaFin
    	   ,a.ActividadLogCodigo
    	   ,case when a.GrupoCodigo =  1 then 'Radicado' else 'Registro' end  AS GrupoCodigo
    	   ,a.ModuloLog
    	   ,a.DatosIniciales
    	   ,a.DatosFinales
    	   ,a.Ip
    	   ,a.NombreEquipo
    	   ,a.Navegador
    	   ,a.Numerodocumento
    	   FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a
    	   join aspnet_Users as x
    on CONVERT(varchar(100), x.UserId) = a.UserId where 1=1   AND UserName = 'administrator'
    
    UNION 
    
    SELECT x.UserName
    	   ,d.Fecha
    	   ,d.FechaFin
    	   ,d.ActividadLogCodigo
    	   ,case when d.GrupoCodigo =  1 then 'Radicado' else 'Registro' end AS GrupoCodigo
    	   ,d.ModuloLog
    	   ,d.DatosIniciales
    	   ,d.DatosFinales
    	   ,d.Ip
    	   ,d.NombreEquipo
    	   ,d.Navegador
    	   ,d.Numerodocumento
    	   FROM [LogsGeneral].[dbo].[LogAlfaNetWorkFlow] AS d
    	   join aspnet_Users as x
    on CONVERT(varchar(100), x.UserId) = d.UserName where 1=1   AND UserName = 'administrator'

    el error es el siguiente: 

    Msg 209, Level 16, State 1, Line 67
    Ambiguous column name 'UserName'.

    Lo que sucede es que en mi tabla LofAlfaNetWorkFlow, ya mi campo no se llama UserId sino UserName tal cual como el campo que estoy trayendo de mi otra tabla 


    Daniel Hernandez

    lunes, 16 de septiembre de 2019 13:34

Respuestas

  • Daniel, parece que en la última consulta hay la columna UserName en ambas tablas. Por lo tanto, en la cláusula ON debe informar qué tabla es la referencia al UserName.

    on CONVERT(varchar(100), x.UserId) = d.UserName where 1=1   AND ?.UserName = 'administrator'


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    lunes, 16 de septiembre de 2019 14:24