AS SELECT 
	ProgramArguments.VariableId AS ArgumentVarId, 
	ProgramArguments.OrdinalPosition AS ArgumentOrdinalPosition, 
	Programs_1.ProgramID AS CalledProgramId, 
	Programs_1.AliasName AS CalledProgramName, 
	Variables.VarID AS CallParameterVarId, 
	Programs_2.ProgramID AS CallingProgramId, 
	Programs_2.AliasName AS CallingProgramName,
	Paths.PathStr, OccurrencesStmt.StartRow,
	ArgumentVars.VarSize, Variables.VarSize,
	ArgumentVars.VarName as argumentName,
	Variables.VarName as paramName    
FROM ((ProgramAliases AS Programs_2 INNER JOIN (OccurrencesStmt INNER JOIN (StatementReference AS StatementReference_2 INNER JOIN ((CallParameters INNER JOIN Variables ON CallParameters.VariableId = Variables.VarID) INNER JOIN StatementReference AS StatementReference_1 ON CallParameters.ID = StatementReference_1.ResourceID) ON StatementReference_2.OccurID = StatementReference_1.OccurID) ON OccurrencesStmt.OccurID = StatementReference_2.OccurID) ON Programs_2.ProgramID = OccurrencesStmt.ProgID and Programs_2.AliasType = 0) INNER JOIN ProgramArguments ON (CallParameters.OrdinalPosition = ProgramArguments.OrdinalPosition) AND (StatementReference_2.ResourceID = ProgramArguments.ProgId)) INNER JOIN ProgramAliases AS Programs_1 ON ProgramArguments.ProgId = Programs_1.ProgramID and Programs_1.AliasType = 0
INNER JOIN Paths ON OccurrencesStmt.PathID = Paths.PathID
INNER JOIN Variables as ArgumentVars ON ArgumentVars.VarID=ProgramArguments.VariableId
WHERE (
		((StatementReference_1.ResourceType)=96) 
		AND ((StatementReference_2.ResourceType)=5)
		AND (ProgramArguments.VariableId IN (SELECT * FROM #numeric_param_temp))
	)	
ORDER BY ProgramArguments.VariableId
