我有一個表稱爲PostDkServicePoint
存儲一堆經度/緯度位置SQL查詢。我今天就這樣稱呼它 - 它將找到指定的lat/lng參數的前30個最接近的位置。母兒加入所需的SQL Server
SELECT TOP (30)
PostDkServicePoint.location.Lat AS latitude,
PostDkServicePoint.location.Long AS longitude,
PostDkServicePoint.servicePointId
FROM
PostDkServicePoint
WHERE
(PostDkServicePoint.location.STDistance('POINT(40.587990 -73.662457)') IS NOT NULL)
ORDER BY
PostDkServicePoint.location.STDistance('POINT(40.587990 -73.662457)')
現在我有另一個表稱爲PostDkOpeningHour
:
openingHoursId int
servicePointId int
day varchar
from1 varchar
to1 varchar
實例行:
1233 5725 MONDAY 07:00 19:00
1234 5725 TUESDAY 07:00 19:00
1235 5725 WEDNESDAY 07:00 19:00
1236 5725 THURSDAY 07:00 19:00
它包含total.I 24000行要加入這兩個表,以便爲每個從上述postdkservicepoint SQL查詢返回的30行也會顯示PostDkOpeningHour表中所有匹配的子行(其中servicepointid是兩張桌子)。
有了這樣的「加入」查詢 - 將緯度/經度數據然後就被複制的每一行與開放時間的數據是這樣的:
5725 40.587990 -73.662457 MONDAY 07:00 19:00
5725 40.587121 -73.662412 TUESDAY 07:00 19:00
或者是有沒有辦法更歸還父母的孩子關係風格?
好的謝謝。我做這行得到一個錯誤,當我運行代碼:「」 cte.servicePointId 消息102,級別15,狀態1,行16 附近有語法錯誤。 –
你可以發佈第一個查詢的一些數據結果嗎?只是爲了建立一個測試環境。 – McNets
好吧,有一個缺少','請檢查它在這裏,http://rextester.com/VQH68668我已經模擬了頂部(10) – McNets