1

Microsoft Sql Server 2008 R2 で Esri ArcMap 10.0 を使用しています

私は2つのテーブルを持っています:

  1. MN_SCHOOLS_PUBLIC- 学校 ID フィールドは ORGID_REL と呼ばれます
  2. TRPD_Schdgrps_Schools- 学校 ID フィールドは School_Code と呼ばれます

最初の表は学校とその住所のリストで、2 番目の表は学校が行った団体予約のリストです。テーブル 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

テーブル 2 に複数のエントリがあるテーブル 1 のすべての学校を選択したいのですが、上記の選択ステートメントから始める必要があります。これは私が思いついたものですが、それを機能させる方法を理解できないようです:

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 に答える