計算された列がある場所でマージするSQL空間テーブルでポリゴンを取得できません。計算された列があるところでSQL空間ポリゴンをマージする
元のクエリは素晴らしい作品:
SELECT RollNumber, Geometry, geometry::UnionAggregate(Geometry_SPA.MakeValid()) AS Geometry_SPA
FROM dbo.LegalParcel
GROUP BY RollNumber, Geometry
は、それは彼らの税のロール番号でマージされたポリゴンのセットを返します。
私たちはエリアを知りたいので、我々は計算列を追加しかし:これは今、グループ別に個別のレコードとして戻ってくる合併することになっているポリゴンをGeometry_SPAを追加する必要ので
SELECT RollNumber, Geometry_SPA.STArea() AS SqMetres, Geometry, geometry::UnionAggregate(Geometry_SPA.MakeValid()) AS Geometry_SPA
FROM dbo.LegalParcel
GROUP BY RollNumber, Geometry, Geometry_SPA.STArea()
を。私は必要なレコードを取得できますか
:「フロートは、ジオメトリと互換性のないオペランドの型の衝突」
は、私はエラーで終了しcolumngeometry::UnionAggregate(Geometry_SPA.STArea()) As SqMetres
しかし新しいSqMetresカラムに集計を追加しようとしましたマージするには?
なぜ2つのジオメトリ列があるのか不思議な人には、GISソフトウェアの要件です。
実際のデータがないとやや難しいですが、 'columngeometry :: UnionAggregate(Geometry_SPA).STArea()As SqMetres'を試しましたか?ユニオン集合体はそれ自身のジオメトリインスタンスを返すべきであり、 'STArea()'メソッドが利用可能になります。 –
ベンに感謝します。はい、そうです。どうやら、元の質問と全く別のトラックに乗っていたようです。 (答えを参照) – BigClyde