[英]Choosing data from one Table that have similar data in another table
我有一個非常不尋常的問題,它涉及在 SQL Server 的兩個單獨表中匹配具有相似值的數據。 例如,我有兩個表:
第一個表包含以下數據:
第二個表包含以下數據:
我在 SQL 中創建了以下查詢以生成視圖,以便我可以檢查數據的有效性:
SELECT dbo.KodakITAssignments.AssignmentDate,
dbo.KodakIT_all_trips_2019.Date,
dbo.KodakIT_all_trips_2019.Start_Time,
dbo.KodakIT_all_trips_2019.End_Time,
dbo.KodakIT_all_trips_2019.Beginning_Odometer,
dbo.KodakIT_all_trips_2019.Ending_Odometer,
dbo.KodakIT_all_trips_2019.Mileage_mi,
dbo.KodakITAssignments.JobID,
dbo.KodakITAssignments.Location,
dbo.KodakIT_all_trips_2019.To_Location_Address
FROM dbo.KodakIT_all_trips_2019 RIGHT OUTER JOIN
dbo.KodakITAssignments
ON dbo.KodakIT_all_trips_2019.Date = dbo.KodakITAssignments.AssignmentDate
我的結果不是很滿意。 這是我的結果示例:
11/26/2019 11/26/2019 8:51 PM 9:12 PM 89053 89062 9 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 1701 Earl St, Union, NJ 07083
11/26/2019 11/26/2019 8:11 PM 8:18 PM 89052 89053 1.4 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 200 Varick St, New York, NY 10014
11/26/2019 11/26/2019 7:57 PM 8:01 PM 89051 89052 0.7 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 62 W 14th St, New York, NY 10011
11/26/2019 11/26/2019 7:39 PM 7:41 PM 89051 89051 0.3 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 14 6th Ave, New York, NY 10013
11/26/2019 11/26/2019 4:29 PM 4:50 PM 77846 77854 7.7 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 1701 Earl St, Union, NJ 07083
11/26/2019 11/26/2019 3:41 PM 3:42 PM 89051 89051 0.1 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 225 Broadway, Suite 2130, New York NY 10007
11/26/2019 11/26/2019 3:27 PM 3:28 PM 89051 89051 0.3 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 101 Barclay Street, New York, NY 10007
11/26/2019 11/26/2019 3:11 PM 3:28 PM 77843 77846 3.4 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 116 Elmer St, Westfield, NJ 07090
11/26/2019 11/26/2019 11:30 AM 11:40 AM 89049 89051 2.3 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 260 Broadway, New York, NY 10007
11/26/2019 11/26/2019 11:03 AM 11:24 AM 89037 89049 12.1 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 175 12th St, Jersey City, NJ 07310
11/26/2019 11/26/2019 11:02 AM 11:17 AM 77837 77843 5.5 125272 114-116 Quimby Street, westfield, NJ 07090 ,Westfield ,US 570 South Ave East, Building G, Suite F, Cranford, NJ 07016
10/21/2019 10/21/2019 7:37 PM 7:48 PM 87965 87967 2.2 119748 41 Main St, Millburn, NJ 07041, USA ,US 1701 Earl St, Union, NJ 07083
我想保留 KodakIT_all_trips_2019 的記錄,其中來自兩個位置的 City 和 Zip Copes 是匹配的; 但是,我沒有在列中設置確切的位置數據。
在這種情況下如何過濾數據?
我願意使用 SQL、R 或 Python 來過濾數據; 最好的方法是可以的,只要我最終得到 KodakItAssignments 記錄的單個記錄。
謝謝您的回復和指導。
我選擇SQL來解決這個問題。 我決定使用兩個表的 RIGHT OUTER JOIN 和 WHERE 和 Like 運算符創建一個視圖。
(dbo.TableA.Location LIKE '%' + RIGHT(dbo.KodakIT_all_trips_2019.To_Location_Address, 5) + '%')
我的結果非常接近(98% 滿意),因為這個查詢只產生了大部分回程(不是全部),因為有些旅行從我終止的地方開始,而不是從我的原始位置開始。 我需要檢查數據,並且可能需要編寫一個額外的查詢來收集剩余的數據。 總的來說,這對我的研究來說是一個非常好的開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.