• -- ?????

    DECLARE @m TABLE (ID INT IDENTITY(1,1), code INT, aname VARCHAR(10), typeT INT)

    INSERT INTO @m (code , aname , typeT )

    SELECT *

    FROM

    (

    SELECT code, bname, 1 Typet

    FROM @b-2

    UNION ALL

    SELECT code, cname, 2 Typet

    FROM @C

    ) x

    SELECTA.CODE, A.ANAME, M.ANAME, N.ANAME

    FROM@mM

    FULL JOIN@mN

    ONM.CODE= N.CODE

    ANDM.ID = (N.ID%(SELECT MIN(o.id) FROM @m O WHERE O.typet = 2 and O.code = M.code))+

    ((SELECT MIN(Q.id) FROM @m Q WHERE Q.typet = 1 and Q.code = M.code))

    RIGHT JOIN@a A

    ONA.code = M.CODE

    ORA.code = N.CODE

    WHERE

    (M.TYPET = 1 OR M.TYPET IS NULL)

    AND(N.TYPET = 2 OR N.TYPET IS NULL)