Я использую Esri ArcMap 10.0 с Microsoft Sql Server 2008 R2
У меня есть 2 таблицы:
MN_SCHOOLS_PUBLIC
- поле школьного идентификатора называется ORGID_REL TRPD_Schdgrps_Schools
- поле школьного идентификатора называется School_Code
Первая таблица - это просто список школ с их адресами, вторая таблица - это групповое бронирование, сделанное школами.Каждая школа в таблице 2 представлена в таблице 1. Я пытаюсь создать запрос, в котором я создаю список школ, которые сделали несколько бронирований.Вот что я придумал:
select School_Code
from central2.gisadmin.TRPD_SCHDGRPS_SCHOOLS
group by School_Code
having COUNT(*) > 1
Это помогло или, по крайней мере, достаточно близко.Однако моя проблема заключается в том, что мне нужно выполнить этот запрос в ГИС-программном средстве, инструмент запросов (Выбрать по атрибутам в ArcMap от Esri) ВСЕГДА запускает оператор выбора для пользователя.Поэтому, когда вы открываете инструмент, запрос начинается с:
select * from gisadmin.MN_SCHOOLS_PUBLIC
Я хочу выбрать все школы в таблице 1, которые имеют несколько записей в таблице 2, и мне нужно начать с приведенного выше оператора выбора.Это то, что я придумал, но я не могу понять, как заставить его работать:
select * from gisadmin.MN_SCHOOLS_PUBLIC
where EXISTS
(SELECT *
FROM central2.GISADMIN.TRPD_Schdgrps_Schools
WHERE central2.GISADMIN.MN_Schools_PUBLIC.ORGID_REL =
(select * from central2.gisadmin.TRPD_SCHDGRPS_SCHOOLS
where School_Code in
(select School_Code
from central2.gisadmin.TRPD_SCHDGRPS_SCHOOLS
group by School_Code
having COUNT(*) > 1)))
Любая помощь будет принята с благодарностью