Buena Tardes a Todos
tengo un Stored Procedure que funciona en SqL y quisisera saber como poderlo hacer que el query manager solicite los parametros para SAP para que el usuario final pueda utilizarlo
ALTER PROCEDURE [dbo].[SP_OCUPACION] @FECHAI Date, @FECHAF Date, @UNI Varchar (2), @DIA INT AS BEGIN DECLARE @rentados DECIMAL(8,0), @totales DECIMAL (8,0) SELECT @rentados=SUM(FLOOR((case T1.[U_DURACION] when 'DIARIA' THEN T1.U_cantidad when 'SEMANAL' THEN T1.U_cantidad*7 when 'MENSUAL' THEN T1.U_cantidad*30 ELSE 0 END))) FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode where (T2.[QryGroup2] <>'Y' and T0.[invntsttus]<>'C') AND (T0.[Docdate]>=@FECHAI and T0.[Docdate] <= @FECHAF) AND (T1.[ItemCode] like @UNI+'-%%')and (T1.[PriceAfVAT]<>0) SELECT @totales = (SUM(FLOOR((T0.[TreeQty])))* @DIA) FROM [dbo].[OITM] T0 WHERE T0.[validFor] = 'Y' AND T0.[ItemCode] Like @UNI+'-%%' AND SELECT FLOOR((@rentados * 100.00 / @totales)) AS OCUPACION; END
y pues leyendo en el foro encontre este codigo pero hay un parametro que no puedo o no se como asignar en el query manager
declare @d1 date, @d2 date, @d3 varchar(2), @d4 Int set @d1=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 where T0.DocDate=*/'[%0]') set @d2=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 where T0.DocDate=*/'[%1]') set @d3=(/*select top 1 T1.ItemCode from [dbo].[OITM] T1 where T1.ItemCode=*/'[%2]') set @d4 = ? exec [dbo].[SP_OCUPACION] @d1,@d2,@d3,@d4
@d4 es un numero que el usuario debe asignar y no se encuentra almacenado en ninugna tabla por lo que las clausalas anteriores no funcionan con @d4 como puedo hacer para setear esete parametro
Gracais de antemano
Hola amigo, hice algunas pruebas y me funciona de la siguiente forma:
declare @d1 date, @d2 date, @d3 varchar(2), @d4 int set @d1=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 where T0.DocDate=*/'[%0]') set @d2=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 where T0.DocDate=*/'[%1]') set @d3=(/*select top 1 T1.ItemCode from [dbo].[OITM] T1 where T1.ItemCode=*/'[%2]') set @d4=(/*select top 1 T1.Number as número from [dbo].[OITM] T1 where T1.Number=*/'[%3]') Select @d1,@d2,@d3 ,@d4