-
Umkreissuche SQL mit KM begrenzung
Hallo alle zusammen,
ich möchte wie der Titel schon sagt eine
Umkreissuche mit SQL machen zur verfügung habe X und Y als Kordinaten.
Bis jetzt habe ich es aber nur hin bekommen das er mir die Daten sortiert ausgiebt welche am nächsten sind.
Ich brauchen jetzt aber den Distanz wert in KM damit ich das vernüftig eingrenzen kann und nicht nur dir so und so viel nächsten.
Mein SQL-Befehl sieht bis jetzt so aus:
SELECT DATEI.*,
(ACOS(SIN(51.130546*PI()/180)* SIN(XKO*PI()/180) +
COS(51.130546*PI()/180)*COS(XKO*PI()/180)* COS((8.120452
-YKO)*PI()/180))) AS DISTANCE
FROM DATEI ORDER BY DISTANCE DESC
XKO und YKO sind die Datenbankfelder.
51.130546 und 8.120452 sind die felder die variabel eingesetzt werden.
DISTANCE bräuchte ich jetzt irgentwie in KM damit ich sagen kann alle innerhalb von 10KM oder so.
vielen Dank schon mal,
Malte
-
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
danke für die schnelle Antwort aber mit
HAVING geht das nicht der Sag mir immer 'Spalte oder globale Variable DISTANCE nicht gefunden.' und ohne HAVING sehen die werte nicht wirklich nach KM aus
MFG Malte
-
Having ist auch der falsche Ansatz, das geht nur beim Groupby.
In der Where-Klausel ist der Ausdruck zu wiederholen und kann dann abgefragt werden:
where ... and abs(Ausdruck) <= 10 ...
Da das aber Tipparbeit ist (und Fehler sich einschleichen können), kannst du auch
select * from (
originalselect ) hugo
where abs(distance) <= 10
Die Umrechnung in KM findest du ja in dem anderen Link.
-
Ich denke deine Formel ist nicht ganz vollständig
SELECT DATEI.*,
Cast(6378,388*
(ACOS(SIN(51.130546*PI()/180)* SIN(XKO*PI()/180) +
COS(51.130546*PI()/180)*COS(XKO*PI()/180)* COS((8.120452
-YKO)*PI()/180))) as dec(10, 4))
AS DISTANCE
FROM DATEI ORDER BY DISTANCE DESC
Guckst du auch hier
Gruß Ronald
-
PHP-Code:
with x as ( SELECT DATEI.*, Cast(6378,388* (ACOS(SIN(51.130546*PI()/180)* SIN(XKO*PI()/180) + COS(51.130546*PI()/180)*COS(XKO*PI()/180)* COS((8.120452 -YKO)*PI()/180))) as dec(10, 4)) AS DISTANCE FROM DATEI ) Select x.* from x where DISTANCE < 10 ORDER BY DISTANCE DESC
-
danke für die ganze Hilfe
malzusrex du hats rechte jetzt nach vervollständiegung und nach dem ich ich gemerk habe das ich x und y vertauscht habe funktioniert es.
MFG Malte
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks