Home Forums SQL Server 2008 T-SQL (SS2K8) Find records which are within the depth range of other records RE: Find records which are within the depth range of other records

  • Not very efficient, but should give the correct results

    SELECT s1.well_id,

    s1.Top1,

    MIN(t1.BASE1) AS BASE1,

    (SELECT DISTINCT c.comment AS "text()"

    FROM TEMP1 c

    WHERE c.well_id = s1.well_id

    AND c.Top1 BETWEEN s1.Top1 AND MIN(t1.BASE1)

    AND c.BASE1 BETWEEN s1.Top1 AND MIN(t1.BASE1)

    ORDER BY c.comment

    FOR XML PATH(''),TYPE).value('.','VARCHAR(100)') AS comments

    FROM TEMP1 s1

    INNER JOIN TEMP1 t1 ON t1.well_id=s1.well_id

    AND s1.Top1 <= t1.BASE1

    AND NOT EXISTS(SELECT * FROM TEMP1 t2

    WHERE t2.well_id=t1.well_id

    AND t1.BASE1 >= t2.Top1 AND t1.BASE1 < t2.BASE1)

    WHERE NOT EXISTS(SELECT * FROM TEMP1 s2

    WHERE s2.well_id=s1.well_id

    AND s1.Top1 > s2.Top1 AND s1.Top1 <= s2.BASE1)

    GROUP BY s1.well_id,s1.Top1

    ORDER BY s1.well_id,s1.Top1;

    ____________________________________________________

    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