Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2006, 14:54
slcarra
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta Ayuda con store, consulta dinamica

Tengo un store al cual le paso parametros para armar la consulta dinamica pero no logro que funcione, el store es el siguiente:

CREATE PROCEDURE RSOthersRecurrents
@EnterpriseSelec VarChar(100),
@Reference VarChar(10) = NULL,
@Line VarChar(18) = NULL,
@Cicle Integer = NULL,
@Orden VarChar(100)
AS

Declare @SQL varchar(3000)

Set @SQL =
'SELECT Recurrents.BusinessArrangement, Recurrents.ServiceID, Recurrents.PBI, Recurrents.BE, Recurrents.ServDescription, Recurrents.AmmountGross,
Recurrents.AmmountNet, Recurrents.AmmountDiscount, Recurrents.AmmountIVA, Recurrents.AmmountOtherTaxes, Recurrents.CC
FROM Enterprises INNER JOIN Recurrents ON Enterprises.Cidn = Recurrents.Cidn INNER JOIN
Document ON Recurrents.IdDocument = Document.IdDocument INNER JOIN
Cicles ON Document.IdCicle = Cicles.IdCicle
WHERE (CHARINDEX(Enterprises.Cidn,' + @EnterpriseSelec + ') > 0) AND ((Recurrents.BusinessArrangement = ' + @Reference + ') OR (' + @Reference + ' IS NULL))
AND ((Recurrents.ServiceID = ' + @Line + ') OR (' + @Line + ' IS NULL)) AND ((Cicles.Cicle = ' + @Cicle + ') OR (' + @Cicle + ' IS NULL))
order by ' + @Orden

exec (@SQL)

GO

La consulta original es la siguiente (que funciona pero necesito hacerla dinamica debido a que el campo del order by necesito que sea variable):

SELECT Recurrents.BusinessArrangement, Recurrents.ServiceID, Recurrents.PBI, Recurrents.BE, Recurrents.ServDescription, Recurrents.AmmountGross,
Recurrents.AmmountNet, Recurrents.AmmountDiscount, Recurrents.AmmountIVA, Recurrents.AmmountOtherTaxes, Recurrents.CC
FROM Enterprises INNER JOIN Recurrents ON Enterprises.Cidn = Recurrents.Cidn INNER JOIN
Document ON Recurrents.IdDocument = Document.IdDocument INNER JOIN
Cicles ON Document.IdCicle = Cicles.IdCicle
WHERE (CHARINDEX(Enterprises.Cidn,@EnterpriseSelec) > 0) AND
((Recurrents.BusinessArrangement = @Reference) OR (@Reference IS NULL))
AND ((Recurrents.ServiceID = @Line) OR (@Line IS NULL)) AND
((Cicles.Cicle = @Cicle) OR (@Cicle IS NULL))
order by Recurrents.BusinessArrangement

Desde ya agradezco a quien me pueda ayudar porque ya probe de todo.

Saludos SEb@