2017-04-21 16 views
1

ロケータ付きOracle 12c DB ...空間クエリとリミット結果でビューを作成

私は2つのテーブルを持っています - テーブル1はポイントジオメトリの列を持っています。 テーブル2にはポリゴンジオメトリの列があります。 正確に をtable2から1つ含むtable2ポリゴンのみでビューを作成したいとします。これは可能ですか? 私は次のことを試してみましたが、まだ複数のポイントが含まれているポリゴンを返します。

CREATE OR REPLACE FORCE EDITIONABLE VIEW VIEW1 AS 
SELECT a.address, l.geometry as GEOMETRY 
from table1 a 
inner join table2 l 
on sdo_anyinteract(a.geometry, l.geometry) = 'TRUE' 
having 2 > 
(select count (a.address) 
from table1 a 
inner join table2 l 
on sdo_anyinteract(a.geometry, l.geometry) = 'TRUE');  

すべてのヘルプ/アドバイスをいただければ幸いです。

+0

にカウントするあなたは、両方のテーブル(ID)で主キーを持っていますか? –

+0

@ArkadiuszŁukasiewiczあり – user3120200

答えて

0

私が正しく理解していれば、あなただけで、簡単なグループを使用することが可能とhaving句

SELECT 
    a.address, 
    l.id 
FROM 
    table1 a 
    INNER JOIN table2 l ON (sdo_anyinteract(a.geometry,l.geometry) = 'TRUE') 
GROUP BY 
    a.address, l.id 
HAVING 
    COUNT(*) = 1; 
+0

ORA-22901:オブジェクト型のVARRAYまたはLOB属性を比較できないので、私は 'group by'にl.geometryを含める必要があるので、これはうまくいきません。 – user3120200

+0

l .idの代わりに、あなたはグループで使用できるでしょうか?次に結果を使用してtable2に再結合してジオメトリを取得しますか? (編集済みの回答) – unleashed

関連する問題