最大半径を指定して 2 点間の距離を計算する関数を作成しました。関数は機能しますが、実装した方法で 2 回呼び出す必要があります。
selectブロックで1回、次にwhereブロックでもう一度。
これを達成するためのより良い方法はありますか?
助けてくれてありがとう!
select
c.LABEL_NAME,
k.*,
dbo.kiw_GetNearMeetingLocationInMiles_FUNC(41.056466,-85.3312009,LATITUDE,LONGITUDE) as distance
from USR_KIW_CUS_MEETING as k
join CUSTOMER as c
on c.MASTER_CUSTOMER_ID = k.MASTER_CUSTOMER_ID
where c.USR_MEMBERSHIP_STATUS_CODE NOT IN('CR','CSD')
and dbo.kiw_GetNearMeetingLocationInMiles_FUNC(41.056466,-85.3312009,LATITUDE,LONGITUDE) <= 120;
アップデート
これは、Mathieu Rodic からの提案に基づいて機能します
SELECT
*
FROM
(
SELECT
c.LABEL_NAME,
k.*,
dbo.kiw_GetNearMeetingLocationInMiles_FUNC(41.056466,-85.3312009,LATITUDE,LONGITUDE) as distance
FROM
USR_KIW_CUS_MEETING as k
JOIN
CUSTOMER as c on c.MASTER_CUSTOMER_ID = k.MASTER_CUSTOMER_ID
WHERE
c.USR_MEMBERSHIP_STATUS_CODE NOT IN('CR','CSD')
)a
WHERE
a.distance <= 120