Buenas comunidad, Tengo una consulta tengo un procedimiento almacenado que me funciona correctamente en SQL, pero al quererlo utilizar en Query manager me arroja errores. Mi procedure es este, lo que hace es que me muestra los documentos que hizo un usuario en un determinado rango de fechas.
CREATE PROCEDURE ReporteDocumentosPorUsuario
@UserCode NVARCHAR(50), -- Código del usuario
@FechaInicio DATE, -- Fecha de inicio del rango
@FechaFin DATE -- Fecha de fin del rango
AS
BEGIN
SET NOCOUNT ON; -- Evita mensajes adicionales como "X filas afectadas"
SELECT
TB.USER_CODE AS Usuario,
TB.U_NAME AS NombreUsuario,
TA.[Tipo Doc] AS TipoDocumento,
TA.DocDate AS FechaDocumento,
TA.DocNum AS NumeroDocumento
FROM (
-- Documentos de clientes
SELECT 'Cotiz. Cliente' AS [Tipo Doc], UserSign, DocDate, DocNum FROM OQUT
UNION ALL
SELECT 'Orden de Venta' AS [Tipo Doc], UserSign, DocDate, DocNum FROM ORDR
UNION ALL
SELECT 'Remisión' AS [Tipo Doc], UserSign, DocDate, DocNum FROM ODLN
UNION ALL
SELECT 'Devol. Clientes' AS [Tipo Doc], UserSign, DocDate, DocNum FROM ORDN
UNION ALL
SELECT 'Anticipos Clientes' AS [Tipo Doc], UserSign, DocDate, DocNum FROM ODPI
UNION ALL
SELECT 'Fact. Clientes' AS [Tipo Doc], UserSign, DocDate, DocNum FROM OINV
UNION ALL
SELECT 'NC. Clientes' AS [Tipo Doc], UserSign, DocDate, DocNum FROM ORIN
-- Documentos de proveedores
UNION ALL
SELECT 'Orden de Compra' AS [Tipo Doc], UserSign, DocDate, DocNum FROM OPOR
UNION ALL
SELECT 'Entrada Mercadería' AS [Tipo Doc], UserSign, DocDate, DocNum FROM OPDN
UNION ALL
SELECT 'Fact. Proveedores' AS [Tipo Doc], UserSign, DocDate, DocNum FROM OPCH
UNION ALL
SELECT 'NC. Proveedores' AS [Tipo Doc], UserSign, DocDate, DocNum FROM ORPC
-- Pagos y Asientos Contables
UNION ALL
SELECT 'Pagos Efectuados' AS [Tipo Doc], UserSign, DocDate, DocNum FROM OVPM
UNION ALL
SELECT 'Asientos Contables' AS [Tipo Doc], UserSign, RefDate AS DocDate, Number AS DocNum FROM OJDT
) AS TA
INNER JOIN OUSR TB ON TA.UserSign = TB.USERID
WHERE
TB.USER_CODE = @UserCode -- Filtra por usuario
AND TA.DocDate BETWEEN @FechaInicio AND @FechaFin -- Filtra por rango de fechas
ORDER BY
TA.DocDate,
TA.[Tipo Doc],
TA.DocNum;
END;
Cuando lo ejecuto en el Query Manager de esta manera si me funciona.
Cuando quiero usar los placeholders me aparece el error de
1). [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Debe especificar la tabla en la que hacer la selección. 2). [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]No se puede preparar la instrucción o instrucciones. ‘’ (ECM2)
Este es el código
EXEC ReporteDocumentosPorUsuario
@UserCode = (/*select top 1 T0.[USER_CODE] from [dbo].[OUSR] T0 where T0.[USER_CODE] =*/'[%0]'),
@FechaInicio = (/*select top 1 T0.[DocDate] from [dbo].[OINV] T0 where T0.DocDate='[%1]'*/),
@FechaFin =( /*select top 1 T0.[DocDate] from [dbo].[OINV] T0 where T0.DocDate=*/'[%2]');
Cual seria la sintaxis correcta ?