• Yep, your analysis is correct.

    There are two ways depending on the data.

    1. Is description and budget_version always the same for one project?

    In this case, you can use

    
    
    SELECT name, min(descrip), min(budget_version)
    FROM ...
    GROUP BY name

    This is in fact tricking SQLServer since you have denormalised tables...

    2. The other way is substituting your select queries in the frame I posted before. You get something like

    
    
    SELECT distinct name, descrip, version
    FROM projects_600
    UNION
    SELECT distinct name, descrip, version
    FROM projects_500 p5
    WHERE NOT EXISTS
    (SELECT p6.name
    FROM projects_600 p6
    WHERE p6.name = p5.name)

    This should do the trick...