Frage

Ich versuche, eine räumliche Abfrage in SQL zu tun. 2008 -> für eine bestimmte Liste von POI (Point of Interest, Long / lat GEOGRAPHY Daten), die Postleitzahlen gibt es sie in (Multipolygon GEOGRAPHY Daten)

Das ist also die Abfrage Ich habe versucht, aber es ist syntaktisch falsch: -

SELECT PostCodeId, ShapeFile
FROM Postcodes a
WHERE a.ShapeFile.STIntersects(
    SELECT PointOfInterest
    FROM PointOfInterests
    WHERE PointOfInterestId IN (SELECT Item from dbo.fnSplit(@PoiIdList, ','))

Dies bedeutet also, i in einer csv Liste der POI-IDs übergeben und teilen sie . Das ist kein Problem .. es ist meine Unterabfrage in den STIntersects. Das ist ungültig.

Also .. irgendwelche Vorschläge Leute?

War es hilfreich?

Lösung

Wie wäre:

SELECT a.PostCodeId, a.ShapeFile
FROM (SELECT Item from dbo.fnSplit(@PoiIdList, ',')) AS POI_IDs
INNER JOIN PointOfInterests
    ON PointOfInterests.PointOfInterestId = POI_IDs.Item
INNER JOIN Postcodes a
    ON a.ShapeFile.STIntersects(PointOfInterests.PointOfInterest) = 1
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top