0

SQL データベースを維持するプロジェクトに取り組んでいます。このデータベースには、タイプ ジオメトリの "area" という名前の属性を持つ AirportZone というテーブルがあります。また、地理タイプの「場所」という名前の属性を持つテーブル OfferRequest を維持します。空港エリアで OfferRequest が発生したかどうかを確認したいので、特定のエリアのユーザーから行われたすべてのリクエストを返す複雑な SQL クエリを定義したいと考えています。何かのようなもの:

select OfferRequest.offer_id from OfferRequest, AirportZone 
where @tmp_geo is geography::STGeomFromText(CAST(AirportZone.area as varchar(max)), 4326)
and @tmp_geo.STIntersects(OfferRequest.location) = 1 and AirportZone.name = 'given_name'

変数 @tmp_geo が原因で、このクエリが間違っていることは明らかです (タイプ geography にしたい)。これを行う方法はありますか、またはwhileループを定義する必要がありますか?

ありがとうございました

4

1 に答える 1

0

上記のクエリは次のように実装できます。

DECLARE @tmp_geo geometry;
SET @tmp_geo = geography::STGeomFromText(CAST(AirportZone.area as varchar(max));
SELECT OfferRequest.offer_id FROM OfferRequest, AirportZone WHERE
@tmp_geo.STIntersects(OfferRequest.location) = 1 AND AirportZone.name = 'given_name';
于 2012-12-20T13:50:25.213 に答える