If you post the data in a consumable format (i.e., something that one can copy and paste to an SSMS window to create test table and data and run queries against that), that makes it easy for someone to write a query and test. Without that a lot of time and efforts on the part of the person who wants to respond is required to create the data. I have created the consumable test data for you. I have to do some real work now, and haven't had a chance to read carefully enough to understand the problem you are trying to solve. So hopefully someone else will post a solution; if not I can give it a try when I come back.
-- CONSUMABLE SAMPLE DATA
CREATE TABLE #Geology
(HoleId VARCHAR(32), FromDepth FLOAT, ToDepth FLOAT, RockType VARCHAR(32));
CREATE TABLE #Assay
(HoleId VARCHAR(32), FromDepth FLOAT, ToDepth FLOAT, Grade INT);
INSERT INTO #Geology VALUES
INSERT INTO #Assay VALUES