• WITH AllSeq AS (

    SELECT Seq FROM GR

    UNION

    SELECT Seq FROM GE

    UNION

    SELECT Seq FROM Ref)

    SELECT d.DocNum,

    gr.GR,

    gr.Seq AS GR_Seq,

    ge.GE,

    ge.Seq AS GE_Seq,

    rf.Ref,

    rf.Seq AS Ref_Seq

    FROM Doc d

    CROSS JOIN AllSeq sq

    LEFT OUTER JOIN GR gr ON gr.DocNum = d.DocNum

    AND gr.Seq = sq.Seq

    LEFT OUTER JOIN GE ge ON ge.DocNum = d.DocNum

    AND ge.Seq = sq.Seq

    LEFT OUTER JOIN Ref rf ON rf.DocNum = d.DocNum

    AND rf.Seq = sq.Seq

    ORDER BY sq.Seq;

    ____________________________________________________

    Deja View - The strange feeling that somewhere, sometime you've optimised this query before

    How to get the best help on a forum

    http://www.sqlservercentral.com/articles/Best+Practices/61537