2011-11-30 54 views
1

我使用ESRI的ArcMap的10.0使用Microsoft SQL Server 2008 R2嵌入在AA選擇列表中的計數聲明

我有2個表:

  1. MN_SCHOOLS_PUBLIC - 學校ID字段被稱爲ORGID_REL
  2. TRPD_Schdgrps_Schools - 學校ID字段叫School_Code

第一張表只是一張學校地址列表,第二張表是al由學校進行團體預訂。表2中的每所學校都存在於表1中。我試圖創建一個查詢,在其中生成已作出多項預訂的學校列表。這是我想出來的:

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

這個做法或至少足夠接近。但是,我的問題在於,我必須在GIS軟件中運行此查詢,查詢工具(通過Esri的ArcMap中的屬性選擇)總是爲用戶啓動select語句。所以,當你打開該工具,查詢始於:

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

任何幫助,將不勝感激

回答

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

那在SQL Management Studio中工作良好,但它不會在GIS中工作,因爲Select語句在第一個地方被更改之前,您添加了「msp」它需要啓動「SELECT * FROM gisadmin.MN_SCHOOLS_PUBLIC WHERE」只能在更改後進行更改where子句 – user1074006

+0

我將其更改爲: – user1074006

+0

SELECT * FROM gisadmin.MN_SCHOOLS_PUBLIC WHERE gisadmin.MN_SCHOOLS_PUBLIC.ORGID_REL IN(SELECT tss.School_Code FROM central2.gisadmin.TRPD_SCHDGRPS_SCHOOLS TSS GROUP BY tss.School_Code HAVING COUNT(*)> 1) – user1074006