none
Error de sintaxis filtrando por fechas RRS feed

  • Pregunta

  • buenos días , espero se encuentre muy bien.

    tengo el siguiente  error podrían orientarme por favor mi consulta es la siguiente:

    DECLARE @cadena VARCHAR(300)
    DECLARE @cadena2 VARCHAR(20)
    DECLARE @cadena3 VARCHAR(200)
    DECLARE @CadenaTotal NVARCHAR(max)
    DECLARE @CadenaUnion VARCHAR(max)
    DECLARE @fechaini DATETIME
    DECLARE @fechafin DATETIME
    DECLARE @username VARCHAR(100)
    DECLARE @ActividadLogica VARCHAR(100)
    DECLARE @CADENAUNION2 varchar(max);
    DECLARE @CADENAUNION3 varchar(max);

    SET @fechaini = '2019-06-17 10:46:32.933'
    SET @fechafin = '2019-07-24 12:55:34.473'
    SET @username = 'administrator'
    SET @ActividadLogica = 'ADICIONAR'

    SET @cadena = ''
    SET @cadena2 = ''
    SET @cadena3 = ''

    IF (
    @fechaini IS NOT NULL
    AND @fechafin IS NOT NULL
    )
    BEGIN
    SET @cadena3 += '  WFMovimientoFechaIni >= @fechaini' + ' and ' + 'WFMovimientoFechaFin <= @fechafin '+ '=' + QUOTENAME(CONVERT (varchar(23), @fechaini, 121), '''') + ' and ' + QUOTENAME(CONVERT (varchar(23), @fechafin, 121), '''') + ' AND '
    END

    IF @username IS NOT NULL
    BEGIN
    SET @cadena3 += ' UserId = ' + QUOTENAME(@Username, '''') + ' AND '
    END

    IF @ActividadLogica IS NOT NULL
    BEGIN
        SET @cadena3 += 'ActividadLogCodigo = ' + QUOTENAME(@ActividadLogica, '''')
    END

    SET @cadena = 'SELECT b.UserId
    ,b.WFMovimientoFechaIni
    ,b.WFMovimientoFechaFin
    ,b.ActividadLogCodigo
    ,b.GrupoCodigo
    ,b.ModuloLog
    ,b.DatosFinales
    ,b.Ip
    ,b.NombreEquipo
    ,b.Navegador
    FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b'
    SET @cadena2 = ' WHERE '
    SET @CadenaUnion = ' 

    UNION
       SELECT c.UserId
       ,c.WFMovimientoFechaIni
       ,c.WFMovimientoFechaFin
       ,c.ActividadLogCodigo
       ,c.GrupoCodigo
       ,c.ModuloLog
       ,c.DatosFinales
       ,c.Ip
       ,c.NombreEquipo
       ,c.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c';
    SET @cadena2 = ' where '
    SET @CadenaUnion2 ='
    UNION
       SELECT a.UserId
       ,a.WFMovimientoFechaIni
       ,a.WFMovimientoFechaFin
       ,a.ActividadLogCodigo
       ,a.GrupoCodigo
       ,a.ModuloLog
       ,a.DatosFinales
       ,a.Ip
       ,a.NombreEquipo
       ,a.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a'
    --SET @cadena2 = ' where '
    --SET @CadenaUnion3 = '

    --UNION

    --SELECT d.Username
    --    ,d.Fecha
    --    ,d.FechaFin
    --    ,d.ActividadLogCodigo
    --    ,d.GrupoCodigo
    --    ,d.ModuloLog
    --    ,d.DatosFinales
    --    ,d.Ip
    --    ,d.NombreEquipo
    --    ,d.Navegador
    --    FROM [LogsGeneral].[dbo].[LogAlfaNetWorkFlow] AS d'
    set @cadena2 = ' where '
    SET @CadenaTotal = @cadena + @cadena2 + @cadena3 + @CadenaUnion + @cadena2 + @cadena3 + @CADENAUNION2 + @cadena2 + @cadena3 --+@CADENAUNION3 + @cadena2 + @cadena3

    PRINT (@CadenaTotal)

    EXEC sp_executesql @CadenaTotal

    la busqueda es la siguiente:

    SELECT b.UserId
    ,b.WFMovimientoFechaIni
    ,b.WFMovimientoFechaFin
    ,b.ActividadLogCodigo
    ,b.GrupoCodigo
    ,b.ModuloLog
    ,b.DatosFinales
    ,b.Ip
    ,b.NombreEquipo
    ,b.Navegador
    FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR' 

    UNION
       SELECT c.UserId
       ,c.WFMovimientoFechaIni
       ,c.WFMovimientoFechaFin
       ,c.ActividadLogCodigo
       ,c.GrupoCodigo
       ,c.ModuloLog
       ,c.DatosFinales
       ,c.Ip
       ,c.NombreEquipo
       ,c.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR'
    UNION
       SELECT a.UserId
       ,a.WFMovimientoFechaIni
       ,a.WFMovimientoFechaFin
       ,a.ActividadLogCodigo
       ,a.GrupoCodigo
       ,a.ModuloLog
       ,a.DatosFinales
       ,a.Ip
       ,a.NombreEquipo
       ,a.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR'
    Msg 137, Level 15, State 2, Line 11
    Must declare the scalar variable "@fechaini".
    Msg 137, Level 15, State 2, Line 24
    Must declare the scalar variable "@fechaini".
    Msg 137, Level 15, State 2, Line 36
    Must declare the scalar variable "@fechaini".

    No entiendo en que donde esta el error de syntax


    Daniel Hernandez

    viernes, 6 de septiembre de 2019 15:55

Respuestas

  • Inserta tu código con la opción apropiada en la redacción de tu duda, así podremos ver exactamente el código que estás intentando ejecutar.

    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    viernes, 6 de septiembre de 2019 17:01
  • DECLARE @cadena VARCHAR(300)
    DECLARE @cadena2 VARCHAR(20)
    DECLARE @cadena3 VARCHAR(200)
    DECLARE @CadenaTotal NVARCHAR(max)
    DECLARE @CadenaUnion VARCHAR(max)
    DECLARE @fechaini DATETIME
    DECLARE @fechafin DATETIME
    DECLARE @username VARCHAR(100)
    DECLARE @ActividadLogica VARCHAR(100)
    DECLARE @CADENAUNION2 varchar(max);
    DECLARE @CADENAUNION3 varchar(max);
    
    SET @fechaini = '2019-06-17 10:46:32.933'
    SET @fechafin = '2019-07-24 12:55:34.473'
    SET @username = 'administrator'
    SET @ActividadLogica = 'ADICIONAR'
    
    SET @cadena = ''
    SET @cadena2 = ''
    SET @cadena3 = ''
    
    IF (
    @fechaini IS NOT NULL
    AND @fechafin IS NOT NULL
    )
    BEGIN
    SET @cadena3 += '  WFMovimientoFechaIni >= @fechaini' + ' and ' + 'WFMovimientoFechaFin <= @fechafin '+ '=' + QUOTENAME(CONVERT (varchar(23), @fechaini, 121), '''') + ' and ' + QUOTENAME(CONVERT (varchar(23), @fechafin, 121), '''') + ' AND '
    END
    
    IF @username IS NOT NULL
    BEGIN
    SET @cadena3 += ' UserId = ' + QUOTENAME(@Username, '''') + ' AND '
    END
    
    IF @ActividadLogica IS NOT NULL
    BEGIN
        SET @cadena3 += 'ActividadLogCodigo = ' + QUOTENAME(@ActividadLogica, '''')
    END
    
    SET @cadena = 'SELECT b.UserId
    ,b.WFMovimientoFechaIni
    ,b.WFMovimientoFechaFin
    ,b.ActividadLogCodigo
    ,b.GrupoCodigo
    ,b.ModuloLog
    ,b.DatosFinales
    ,b.Ip
    ,b.NombreEquipo
    ,b.Navegador
    FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b'
    SET @cadena2 = ' WHERE '
    SET @CadenaUnion = ' 
    
    UNION
       SELECT c.UserId
       ,c.WFMovimientoFechaIni
       ,c.WFMovimientoFechaFin
       ,c.ActividadLogCodigo
       ,c.GrupoCodigo
       ,c.ModuloLog
       ,c.DatosFinales
       ,c.Ip
       ,c.NombreEquipo
       ,c.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c';
    SET @cadena2 = ' where '
    SET @CadenaUnion2 ='
    UNION
       SELECT a.UserId
       ,a.WFMovimientoFechaIni
       ,a.WFMovimientoFechaFin
       ,a.ActividadLogCodigo
       ,a.GrupoCodigo
       ,a.ModuloLog
       ,a.DatosFinales
       ,a.Ip
       ,a.NombreEquipo
       ,a.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a'
    --SET @cadena2 = ' where '
    --SET @CadenaUnion3 = '
    
    --UNION
    
    --SELECT d.Username
    --
       ,d.Fecha
    --
       ,d.FechaFin
    --
       ,d.ActividadLogCodigo
    --
       ,d.GrupoCodigo
    --
       ,d.ModuloLog
    --
       ,d.DatosFinales
    --
       ,d.Ip
    --
       ,d.NombreEquipo
    --
       ,d.Navegador
    --
       FROM [LogsGeneral].[dbo].[LogAlfaNetWorkFlow] AS d'
    set @cadena2 = ' where '
    SET @CadenaTotal = @cadena + @cadena2 + @cadena3 + @CadenaUnion + @cadena2 + @cadena3 + @CADENAUNION2 + @cadena2 + @cadena3 --+@CADENAUNION3 + @cadena2 + @cadena3
    
    PRINT (@CadenaTotal)
    
    EXEC sp_executesql @CadenaTotal
    
    la busqueda es la siguiente:
    
    SELECT b.UserId
    ,b.WFMovimientoFechaIni
    ,b.WFMovimientoFechaFin
    ,b.ActividadLogCodigo
    ,b.GrupoCodigo
    ,b.ModuloLog
    ,b.DatosFinales
    ,b.Ip
    ,b.NombreEquipo
    ,b.Navegador
    FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR' 
    
    UNION
       SELECT c.UserId
       ,c.WFMovimientoFechaIni
       ,c.WFMovimientoFechaFin
       ,c.ActividadLogCodigo
       ,c.GrupoCodigo
       ,c.ModuloLog
       ,c.DatosFinales
       ,c.Ip
       ,c.NombreEquipo
       ,c.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR'
    UNION
       SELECT a.UserId
       ,a.WFMovimientoFechaIni
       ,a.WFMovimientoFechaFin
       ,a.ActividadLogCodigo
       ,a.GrupoCodigo
       ,a.ModuloLog
       ,a.DatosFinales
       ,a.Ip
       ,a.NombreEquipo
       ,a.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR'
    Msg 137, Level 15, State 2, Line 11
    Must declare the scalar variable "@fechaini".
    Msg 137, Level 15, State 2, Line 24
    Must declare the scalar variable "@fechaini".
    Msg 137, Level 15, State 2, Line 36
    Must declare the scalar variable "@fechaini".
    
    No entiendo en que donde esta el error de syntax


    Daniel Hernandez

    viernes, 6 de septiembre de 2019 17:15
  • Deleted
    sábado, 7 de septiembre de 2019 1:49

Todas las respuestas

  • Inserta tu código con la opción apropiada en la redacción de tu duda, así podremos ver exactamente el código que estás intentando ejecutar.

    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    viernes, 6 de septiembre de 2019 17:01
  • DECLARE @cadena VARCHAR(300)
    DECLARE @cadena2 VARCHAR(20)
    DECLARE @cadena3 VARCHAR(200)
    DECLARE @CadenaTotal NVARCHAR(max)
    DECLARE @CadenaUnion VARCHAR(max)
    DECLARE @fechaini DATETIME
    DECLARE @fechafin DATETIME
    DECLARE @username VARCHAR(100)
    DECLARE @ActividadLogica VARCHAR(100)
    DECLARE @CADENAUNION2 varchar(max);
    DECLARE @CADENAUNION3 varchar(max);
    
    SET @fechaini = '2019-06-17 10:46:32.933'
    SET @fechafin = '2019-07-24 12:55:34.473'
    SET @username = 'administrator'
    SET @ActividadLogica = 'ADICIONAR'
    
    SET @cadena = ''
    SET @cadena2 = ''
    SET @cadena3 = ''
    
    IF (
    @fechaini IS NOT NULL
    AND @fechafin IS NOT NULL
    )
    BEGIN
    SET @cadena3 += '  WFMovimientoFechaIni >= @fechaini' + ' and ' + 'WFMovimientoFechaFin <= @fechafin '+ '=' + QUOTENAME(CONVERT (varchar(23), @fechaini, 121), '''') + ' and ' + QUOTENAME(CONVERT (varchar(23), @fechafin, 121), '''') + ' AND '
    END
    
    IF @username IS NOT NULL
    BEGIN
    SET @cadena3 += ' UserId = ' + QUOTENAME(@Username, '''') + ' AND '
    END
    
    IF @ActividadLogica IS NOT NULL
    BEGIN
        SET @cadena3 += 'ActividadLogCodigo = ' + QUOTENAME(@ActividadLogica, '''')
    END
    
    SET @cadena = 'SELECT b.UserId
    ,b.WFMovimientoFechaIni
    ,b.WFMovimientoFechaFin
    ,b.ActividadLogCodigo
    ,b.GrupoCodigo
    ,b.ModuloLog
    ,b.DatosFinales
    ,b.Ip
    ,b.NombreEquipo
    ,b.Navegador
    FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b'
    SET @cadena2 = ' WHERE '
    SET @CadenaUnion = ' 
    
    UNION
       SELECT c.UserId
       ,c.WFMovimientoFechaIni
       ,c.WFMovimientoFechaFin
       ,c.ActividadLogCodigo
       ,c.GrupoCodigo
       ,c.ModuloLog
       ,c.DatosFinales
       ,c.Ip
       ,c.NombreEquipo
       ,c.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c';
    SET @cadena2 = ' where '
    SET @CadenaUnion2 ='
    UNION
       SELECT a.UserId
       ,a.WFMovimientoFechaIni
       ,a.WFMovimientoFechaFin
       ,a.ActividadLogCodigo
       ,a.GrupoCodigo
       ,a.ModuloLog
       ,a.DatosFinales
       ,a.Ip
       ,a.NombreEquipo
       ,a.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a'
    --SET @cadena2 = ' where '
    --SET @CadenaUnion3 = '
    
    --UNION
    
    --SELECT d.Username
    --
       ,d.Fecha
    --
       ,d.FechaFin
    --
       ,d.ActividadLogCodigo
    --
       ,d.GrupoCodigo
    --
       ,d.ModuloLog
    --
       ,d.DatosFinales
    --
       ,d.Ip
    --
       ,d.NombreEquipo
    --
       ,d.Navegador
    --
       FROM [LogsGeneral].[dbo].[LogAlfaNetWorkFlow] AS d'
    set @cadena2 = ' where '
    SET @CadenaTotal = @cadena + @cadena2 + @cadena3 + @CadenaUnion + @cadena2 + @cadena3 + @CADENAUNION2 + @cadena2 + @cadena3 --+@CADENAUNION3 + @cadena2 + @cadena3
    
    PRINT (@CadenaTotal)
    
    EXEC sp_executesql @CadenaTotal
    
    la busqueda es la siguiente:
    
    SELECT b.UserId
    ,b.WFMovimientoFechaIni
    ,b.WFMovimientoFechaFin
    ,b.ActividadLogCodigo
    ,b.GrupoCodigo
    ,b.ModuloLog
    ,b.DatosFinales
    ,b.Ip
    ,b.NombreEquipo
    ,b.Navegador
    FROM [LogsGeneral].[dbo].[LogAlfaNetConsulta] AS b where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR' 
    
    UNION
       SELECT c.UserId
       ,c.WFMovimientoFechaIni
       ,c.WFMovimientoFechaFin
       ,c.ActividadLogCodigo
       ,c.GrupoCodigo
       ,c.ModuloLog
       ,c.DatosFinales
       ,c.Ip
       ,c.NombreEquipo
       ,c.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNet] AS c where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR'
    UNION
       SELECT a.UserId
       ,a.WFMovimientoFechaIni
       ,a.WFMovimientoFechaFin
       ,a.ActividadLogCodigo
       ,a.GrupoCodigo
       ,a.ModuloLog
       ,a.DatosFinales
       ,a.Ip
       ,a.NombreEquipo
       ,a.Navegador
       FROM [LogsGeneral].[dbo].[LogAlfaNetEnv] AS a where   WFMovimientoFechaIni >= @fechaini and WFMovimientoFechaFin <= @fechafin ='2019-06-17 10:46:32.933' and '2019-07-24 12:55:34.473' AND  UserId = 'administrator' AND ActividadLogCodigo = 'ADICIONAR'
    Msg 137, Level 15, State 2, Line 11
    Must declare the scalar variable "@fechaini".
    Msg 137, Level 15, State 2, Line 24
    Must declare the scalar variable "@fechaini".
    Msg 137, Level 15, State 2, Line 36
    Must declare the scalar variable "@fechaini".
    
    No entiendo en que donde esta el error de syntax


    Daniel Hernandez

    viernes, 6 de septiembre de 2019 17:15
  • Deleted
    sábado, 7 de septiembre de 2019 1:49