table 中的间隔与另一个 table 中的间隔不匹配

Interval in a table does not match interval in another table

我想将 table 的“from-to”值与另一个 table 值进行比较,看看它们是否匹配。实际上,我想要第一个 [=18= 的 FROM ] 以适应另一个 table 的 FROM 和第一个 table 的 TO 以适应第二个 table 的 TO 之一,如:

     TABLE1                                TABLE2
GEOLFROM GEOLTO                         SAMPFROM SAMPLTO
   28.5    36                             28.5   29.5
                                          29.5   32
                                          32     34.5
                                          34.5   36.1
                                          36.1   38

在那种情况下,我想要一条错误消息,因为 table 1.

的 geolto 不匹配
DECLARE @COUNT_ int
SELECT @COUNT_ = COUNT(*) FROM TABLE1 T1
LEFT JOIN TABLE2 T2 ON T1.HOLEID = T2.HOLEID AND (T1.GEOLFROM = T2.SAMPFROM OR T1.GEOLTO = T2.SAMPTO) 

IF COUNT > 0 
    [...] ERROR

鉴于您有两个值可以显示在任何 2 个不同的行中,我相信您必须在同一 table 上加入两次。所以我认为这对您有用:

CREATE TABLE #tbl_1(HoleID int, GEOLFROM decimal(10,1), GEOLTO decimal(10,1))
CREATE TABLE #tbl_2(HoleID int, SAMPFROM decimal(10,1), SAMPTO decimal(10,1))

INSERT INTO #tbl_1 VALUES(1,28.5,36)
INSERT INTO #tbl_2 VALUES(1,28.5,29.5)
INSERT INTO #tbl_2 VALUES(1,29.5,32)
INSERT INTO #tbl_2 VALUES(1,32,34.5)
INSERT INTO #tbl_2 VALUES(1,34.5,36.1)
INSERT INTO #tbl_2 VALUES(1,36.1,38)

SELECT COUNT(*)
from #tbl_1 t1
LEFT JOIN #tbl_2 t2 on t1.HoleID = t2.HoleID AND (t1.GEOLFROM = t2.SAMPFROM)
LEFT JOIN #tbl_2 t3 on t1.HoleID = t3.HoleID AND (t1.GEOLTO = t3.SAMPTO)
WHERE t3.HoleID IS NOT NULL and t2.HoleID IS NOT NULL