@Statement_limit integer
AS SELECT DISTINCT 
                      dbo.IfInfo.ProgId, dbo.ProgramAliases.AliasName AS ProgramName, dbo.Paths.PathStr, dbo.OccurrencesStmt.StartRow, 
                      CASE WHEN dbo.Paths.PathID = Occurrences.PathID THEN 0 ELSE - 1 END AS IsCopy
FROM         dbo.Programs INNER JOIN
                      dbo.Occurrences ON dbo.Programs.OccurID = dbo.Occurrences.OccurID INNER JOIN
                      dbo.IfInfo INNER JOIN
                      dbo.OccurrencesStmt ON dbo.IfInfo.OccurId = dbo.OccurrencesStmt.OccurID INNER JOIN
                      dbo.Paths ON dbo.OccurrencesStmt.PathID = dbo.Paths.PathID ON dbo.Programs.ProgramID = dbo.OccurrencesStmt.ProgID INNER JOIN
		dbo.ProgramAliases ON dbo.ProgramAliases.ProgramId = dbo.Programs.ProgramID
			AND dbo.ProgramAliases.AliasType = 0
WHERE     (dbo.IfInfo.ProgId IN (Select * from #numeric_param_temp))
				 AND (dbo.IfInfo.NumberOfStatementsInElseBlock > @Statement_limit) OR
                      (dbo.IfInfo.ProgId IN (Select * from #numeric_param_temp)) 
                      AND (dbo.IfInfo.NumberOfStatementsInThenBlock > @Statement_limit)
ORDER BY dbo.ProgramAliases.AliasName, dbo.Paths.PathStr, dbo.OccurrencesStmt.StartRow 
                      