Danny - 2012-12-09

Hallo OpenGeoDB-Gemeinde,

fr ein Projekt mchte ich OpenGeoDB nutzen um genaue LAT und LON zu ermitteln.
Kurze Schilderung:

Besucher gibt bei Registrierung PLZ ein.
Ein Script sucht nun anhand der PLZ die loc_id(s) heraus fr die Tabelle geodb_coordinates.
Desweiteren mchte ich in dieser SQL-Abfrage aufgrund der komplexen Form der Datenbank auch Ort, Stadt, Bundesland und Land auslesen, die zu diesen PLZ(s) ermitttelt wurden. Besucher soll dann den richtigen Ort auswhlen,
der zu seiner PLZ passt.

Ich bin nun mit meinem Latein etwas am Ende.
Die Coordinaten drfen ruhig in einer zweiten Abfrage stattfinden, dafr hab ich ja dann die passende Loc_id.
Aber irgendwie klappt mein Skript nicht so richtig.
Fr Zrich (PLZ 8000) bringt er mir Belgien und mehrere Orte.
Fr Deutsche Orte klappt mein Script gleich gar nicht!

SELECT gt_plz.loc_id,
       gt_plz.text_val AS plz,
       gt_ort.text_val AS ort,
       gt_std.text_val AS stadt,
       gt_bdl.text_val AS bundesland,
       gt_lnd.text_val AS land
  FROM geodb_textdata gt_plz
       INNER JOIN geodb_hierarchies gh ON (gh.loc_id = gt_plz.loc_id)
       INNER JOIN geodb_textdata gt_ort ON (gt_ort.loc_id = gh.id_lvl7)
       INNER JOIN geodb_textdata gt_std ON (gt_std.loc_id = gh.id_lvl6)
       INNER JOIN geodb_textdata gt_bdl ON (gt_bdl.loc_id = gh.id_lvl3)
       INNER JOIN geodb_textdata gt_lnd ON (gt_lnd.loc_id = gh.id_lvl2)
 WHERE gt_plz.text_type = 500300000 AND
       gt_ort.text_type = 500100000 AND
       gt_bdl.text_type = 500100000 AND
       gt_lnd.text_type = 500100000 AND
       gt_std.text_type = 500100000 AND
       gt_lnd.text_locale = 'en' AND
       gt_plz.text_val = '10150';

Vielleicht kann mir von euch einer Tipps und Hilfe geben.
Danke…