Sql server 表中的间隔与另一个表中的间隔不匹配

Sql server 表中的间隔与另一个表中的间隔不匹配,sql-server,tsql,intervals,Sql Server,Tsql,Intervals,我想将一个表的“from to”值与另一个表的值进行比较,看看它们是否匹配。实际上,我希望第一个表的FROM与另一个表的FROM之一匹配,第一个表的to与第二个表的to之一匹配,如所示: 表1表2 GEOLFROM GEOLTO SAMPFROM SAMPLTO 28.5 36 28.5 29.5 二十九点五三二 32 34.5 34.5 36.1 三十六点一三八 在这种情况下,我想要一条错误消息,因为表1中的geol

我想将一个表的“from to”值与另一个表的值进行比较,看看它们是否匹配。实际上,我希望第一个表的FROM与另一个表的FROM之一匹配,第一个表的to与第二个表的to之一匹配,如所示:

表1表2 GEOLFROM GEOLTO SAMPFROM SAMPLTO 28.5 36 28.5 29.5 二十九点五三二 32 34.5 34.5 36.1 三十六点一三八 在这种情况下,我想要一条错误消息,因为表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

假设有两个值可以显示在任意两个不同的行中,我认为必须在同一个表中联接两次。以下是我相信对你有用的东西:

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

您的用户将在哪里看到错误消息?停止计数-您只需检查是否存在。我们看到您的示例查询引用了示例表中不存在的列,所以很明显,这个问题比您描述的要复杂得多。这就是为什么最好发布一个包含DDL和DML的简短脚本来填充示例数据的原因。