Guten Abend akretschmer,
danke für die Antwort.
Jetzt ist es mir auch klar, bin halt doch etwas aus der Übung.
Bei der MySQL-Sache habe ich mich vertan. Statt WHERE habe ich dort HAVING, war ein klassischer Copy&Paste-Fehler. Aber das geht bei PG auch nicht.
Nach etwas tiefer gehender Überlegung habe ich das Problem so gelöst:
SELECT a,b,c, (a+b+c) as d FROM table ORDER BY d
Hintergrund der Geschichte ist, dass ich eine Tabelle mit Einträgen zu Webcams habe. Diese sollen im Umkreis von 30km liegen und nach ihrer Entfernung sortiert ausgegeben werden:
SELECT standort,url,bildurl,copyright,copyright_url,Webcam_Distanz(%f,%f,lat,lon) AS distanz
FROM t_webcams
WHERE bildurl != '' AND aktiv = 1
ORDER BY distanz ASC
LIMIT 6
(%f ist der Standort, in dessen Nähe die Cams stehen sollen)
Das Problem dieser Methode ist halt, dass auch Webcams angezeigt werden können, die jenseits des 30km-Radius liegen. Das erledige ich jetzt aber im PHP-Skript.
Beste Grüße
JueDan
PS: Die zugehörige Funktion
CREATE OR REPLACE FUNCTION webcam_distanz(double precision, double precision, double precision, double precision)
RETURNS double precision AS
$BODY$
SELECT (6371 * acos(sin($1/57.295800) * sin($3/57.295800) +
cos($1/57.295800) * cos($3/57.295800) *
cos($4/57.295800 - $2/57.295800))) AS result;
$BODY$
LANGUAGE sql VOLATILE
COST 100;