1

我将 Esri ArcMap 10.0 与 Microsoft Sql Server 2008 R2 一起使用

我有 2 张桌子:

  1. MN_SCHOOLS_PUBLIC- 学校 ID 字段称为 ORGID_REL
  2. TRPD_Schdgrps_Schools- 学校 ID 字段称为 School_Code

第一个表只是学校的地址列表,第二个表是学校进行的团体预订列表。表 2 中的每所学校都存在于表 1 中。我正在尝试创建一个查询,在其中生成已进行多次预订的学校列表。这就是我想出的:

select School_Code
from central2.gisadmin.TRPD_SCHDGRPS_SCHOOLS
group by School_Code
having COUNT(*) > 1

这起到了作用,或者至少足够接近。但是,我的问题在于我必须在 GIS 软件中运行此查询,查询工具(在 Esri 的 ArcMap 中按属性选择)总是为用户启动选择语句。因此,当您打开该工具时,查询将从以下内容开始:

select * from gisadmin.MN_SCHOOLS_PUBLIC

我想选择表 1 中所有在表 2 中有多个条目的学校,并且我需要从上面的 select 语句开始。这是我想出的,但我似乎无法弄清楚如何让它工作:

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)))

任何帮助将不胜感激

4

1 回答 1

0

试试这个:

SELECT * FROM gisadmin.MN_SCHOOLS_PUBLIC msp
WHERE msp.School_Code IN
(
    SELECT tss.School_Code
    FROM central2.gisadmin.TRPD_SCHDGRPS_SCHOOLS tss
    GROUP BY tss.School_Code
    HAVING COUNT(*) > 1
)
于 2011-11-30T18:54:34.893 回答