У меня есть 3 таблицы Campaign
, Mall
, MallCampaign
(многие-ко-многим) и вы хотите заказать ближайшие кампании, которые доступны в одном или нескольких торговых центрах.SQL Server: хранимая процедура многозначный запрос таблицы
В первом запросе; Я имею право на доступ к дистанции кампаний, которые доступны в разных торговых центрах. Но нужно делать это для всех кампаний не только (Id = 79). Мне не удалось это сделать с помощью JOIN.
SELECT
m.MallId,
ROUND(@geo1.STDistance(geography::Point(m.MallLatitude, m.MallLongitude, 4326))/1000,1) AS Distance
FROM
MallCampaign mc
INNER JOIN
Mall m ON m.MallId = mc.MallId
WHERE
m.IsActive != 0 AND mc.CampaignId = 79
ORDER BY
Distance
SELECT
ca.CampaignId, ca.CampaignTitle
FROM
Campaign ca
Что делать, если я хочу показать только одну строку (минимальную дистанцию) одной кампании? Я попробовал MIN (Расстояние), но он дает ошибку для раздела GROUP BY для других выбранных элементов. –
Да, я пропустил это извините. Также добавлены сведения о кампании и упорядочены по расстоянию. Прекрасно работает :) Большое спасибо! –