Я использую sql server 2008 R2, и у меня есть две таблицы: регионы и объекты. Оба имеют столбец, содержащий элемент географии.
Я хочу рассчитать объединение на пересечении элементов географии, например:
SELECT * from Regions join Facilities on [Regions].[geography].STIntersects([Facilities].[geography])
что конечно не работает. Регионы представляют собой большие полигоны, а объекты — точки, каждая из которых содержится только в одном полигоне.
Я могу написать какой-нибудь (псевдокод)
for each r in Regions:
for each f in Facilities:
if f.[geography].STIntersects(r.[geography]):
print r, f
но весь смысл использования базы данных заключается в том, чтобы работать с набором, а не с элементами, верно?
Итак, есть ли лучший способ сделать это?
спасибо Мелани
SELECT r.geography, f.geography from Regions r join Facilities f on r.geography.STIntersects(f.geography)=1
- person RichardTheKiwi   schedule 10.10.2012