2016-08-11 14 views
2

私の質問は簡単です。ジオメトリデータ型を持つ2つのクエリに対してunionを使用したいと思います。SQL Server 2008 R2:ジオメトリデータ型を比較できないため、DISTINCTとして選択できません。

これは私のクエリです:

実際に
select 
    f.*, f.geom.STArea() as area, f.geom.STLength() as perimeter 
from 
    [dbo].[nosazi_shahrsazi_conne_leftJ]() as f, 
    (select geom 
    from dbo.[GetWithinParcelWithApoint]('POLYGON ((5727454.0875024563 3838386.9047163716, 5727454.0875024563 3838391.8829422966, 5727459.06572838 3838391.8829422966, 5727459.06572838 3838386.9047163716, 5727454.0875024563 3838386.9047163716))') g) as h 
where 
    h.geom.STTouches (f.geom) = 1 

union 

(select * 
from dbo.[GetWithinParcelWithApoint]('POLYGON ((5727454.0875024563 3838386.9047163716, 5727454.0875024563 3838391.8829422966, 5727459.06572838 3838391.8829422966, 5727459.06572838 3838386.9047163716, 5727454.0875024563 3838386.9047163716))') g) 

私は形状の周りのすべてに触れる形を見つけて、私は労働組合を使用する必要があります..so結果に形状自体を追加したい。..

はですこのエラーを解決する方法はありますか?ありがとう

+1

これは他人を助けるかもしれません。ユニオン・ユニオン・オール・ユニオン・オール・オール・ユニオン・オール・ファインに変わる –

+2

SQL Server ** 2009 **バージョンはありません - 2000年、2005年、2008年、2008年、2012年、2014年、2016年 –

+0

@marc_sああ、それは私の間違いだった。私は2009年r2.Questinが編集されている –

答えて

3

エラーがdbo.[GetWithinParcelWithApoint]の内部にあるかどうかわかりません。もしそうなら、そのテキストを見る必要があります。

目に見えるエラーから、GEOMETRYデータ型にはUNION ALLを使用する必要があります。

+1

これはまさに私がそれを動作させるためにした –

関連する問題