[英]Comparing two tables in SQL Server
您的問題不正確。
根據您的要求
您給輸出表的第三行提供了不正確的信息。 注意:第一個表中aa3的StartNo為4,並且大於第二個表中bb1或bb2的startNo。 但是您將結果作為bb3對aa3 <-給出了錯誤。
在返回table2的TOP 1 UniqueRef的最后一列中使用相關的子選擇,其中table1.startNo> = table2.startNo
假定所有數字字段均為小數,這將為您提供所需的輸出:
http://rextester.com/BYVC41019
CREATE TABLE Table1(UniqueRef VARCHAR(5), Name VARCHAR(10), startNo decimal(2, 1), endNo decimal(2, 1));
CREATE TABLE Table2(UniqueRef VARCHAR(5), Name VARCHAR(10), startNo decimal(2, 1), endNo decimal(2, 1));
INSERT INTO Table1(UniqueRef, Name, startNo, endNo)VALUES('aa1', 'name1', 1, 3);
INSERT INTO Table1(UniqueRef, Name, startNo, endNo)VALUES('aa2', 'name1', 2, 5);
INSERT INTO Table1(UniqueRef, Name, startNo, endNo)VALUES('aa3', 'name2', 5.5, 5);
INSERT INTO Table1(UniqueRef, Name, startNo, endNo)VALUES('aa4', 'name2', 1, 2);
INSERT INTO Table2(UniqueRef, Name, startNo, endNo)VALUES('bb1', 'name1', 2, 3);
INSERT INTO Table2(UniqueRef, Name, startNo, endNo)VALUES('bb2', 'name1', 3, 5);
INSERT INTO Table2(UniqueRef, Name, startNo, endNo)VALUES('bb3', 'name2', 5, 6);
INSERT INTO Table2(UniqueRef, Name, startNo, endNo)VALUES('bb4', 'name2', 6, 8);
SELECT
T1.UniqueRef
, T1.Name
, T1.startNo
, T1.endNo
, T2.UniqueRef
FROM Table1 T1
LEFT JOIN Table2 T2
ON T1.Name = T2.Name
AND T1.startNo >= T2.startNo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.