Ich schreibe eine Abfrage, um den weitesten Punkt zu einem Speicherort zu finden. Meine Frage ist, wie unten:Verknüpfen Sie Tabellen in zwei Ebenen von Unterabfragen in Oracle
select sighting_ID, SQRT(POWER((28+latitude),2) + POWER((longitude-151),2)) AS distance
FROM sightings
WHERE NOT EXISTS(SELECT sighting_id
FROM sightings
WHERE SQRT(POWER((28+latitude),2) + POWER((longitude-151),2)) <
(SELECT SQRT(POWER((28+latitude),2) + POWER((longitude-151),2))
FROM sightings s1 join sightings s2
WHERE s1.sighting_ID = s2.sighting_ID));
Aber ein Fehler
FEHLER in Zeile auftritt, zu sagen 'wo s1.sighting_ID = s2.sighting_ID': ORA-00905: fehlendes Stichwort‘
Ich mache nicht was ich falsch mache.
Das vorherige Problem ist gelöst. Hier ist meine neue Abfrage.
select sighting_ID, SQRT(POWER((28+latitude),2) + POWER((longitude-151),2)) AS distance
from sightings
WHERE NOT exists
(SELECT sighting_id
FROM sightings
WHERE SQRT(POWER((28+latitude),2) + POWER((longitude-151),2)) <
(SELECT SQRT(POWER((28+s1.latitude),2) + POWER((s1.longitude-151),2))
FROM sightings s1 join sightings s2
ON s1.sighting_ID = s2.sighting_ID
));
Aber es sagt der allerletzten wählen Rückkehr mehr als eine Zeile. Ich verstehe, was diese Fehlermassage bedeutet. Aber wie kann ich die Abfrage vergleichen lassen (<) jedes Tupel, das von der letzten Auswahl jeweils zurückgegeben wird?
Ich verstehe nicht, Ihre Frage. Warum haben Sie fest codierte Koordinaten? –