AS SELECT     dbo.ProgramAliases.ProgramID, dbo.ProgramAliases.AliasName AS ProgramName, dbo.Paths.PathStr, 1 AS StartRow, 0 AS IsCopy
FROM         dbo.Programs INNER JOIN
                      dbo.Occurrences ON dbo.Programs.OccurID = dbo.Occurrences.OccurID INNER JOIN
                      dbo.Paths ON dbo.Occurrences.PathID = dbo.Paths.PathID INNER JOIN
		dbo.ProgramAliases ON dbo.ProgramAliases.ProgramId = dbo.Programs.ProgramID
			AND dbo.ProgramAliases.AliasType = 0
WHERE     (NOT (dbo.ProgramAliases.ProgramID IN
                          (SELECT DISTINCT Programs_1.ProgramID
                            FROM          dbo.Programs AS Programs_1 INNER JOIN
                                                   dbo.OccurrencesStmt AS OccurrencesStmt ON Programs_1.ProgramID = OccurrencesStmt.ProgID
                            WHERE      (OccurrencesStmt.StatementType = 21)))) 
           AND (dbo.Programs.ProgramTypeID = 1)                  
UNION
SELECT     dbo.ProgramAliases.ProgramID, dbo.ProgramAliases.AliasName AS ProgramName, Paths.PathStr, dbo.OccurrencesStmt.StartRow, 
                      CASE WHEN dbo.OccurrencesStmt.PathID = Occurrences.PathID THEN 0 ELSE - 1 END AS IsCopy
FROM         dbo.Programs INNER JOIN
                      dbo.OccurrencesStmt ON dbo.Programs.ProgramID = dbo.OccurrencesStmt.ProgID INNER JOIN
                      dbo.Occurrences ON dbo.Programs.OccurID = dbo.Occurrences.OccurID INNER JOIN
                      dbo.Paths AS Paths ON dbo.OccurrencesStmt.PathID = Paths.PathID INNER JOIN
                      dbo.ProgramAliases ON dbo.ProgramAliases.ProgramId = dbo.Programs.ProgramID
			            AND dbo.ProgramAliases.AliasType = 0
WHERE     (dbo.OccurrencesStmt.StatementType = 21) 
		AND (dbo.Programs.ProgramTypeID = 1) 
		AND (dbo.ProgramAliases.ProgramID IN
                          (SELECT     Programs_1.ProgramID
                            FROM          dbo.Programs AS Programs_1 INNER JOIN
                                                   dbo.OccurrencesStmt AS OccurrencesStmt_1 ON Programs_1.ProgramID = OccurrencesStmt_1.ProgID
                            WHERE      (OccurrencesStmt_1.StatementType = 21)
                            GROUP BY Programs_1.ProgramID
                            HAVING      (COUNT(Programs_1.ProgramID) > 1)))
ORDER BY dbo.ProgramAliases.AliasName, dbo.Paths.PathStr