Jetzt Mitglied werden

Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.

Login für Mitglieder

Forum - Entwicklung

Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.

Über Webmasterpro.de

Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.

Datenbanken (SQL) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.


Bambusstock
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline

Problem mit WHERE

Link zur Antwort auf "Problem mit WHERE" von Bambusstock Bambusstock, am Samstag den 24.04.2010 um 13:16:44

Hallo, ich habe hier ein SQL-Statement, welches mir an Hand von Longitude und Latitude aus meiner Datenbank den Abstand zu einem bestimmten Standort X ausrechnet und ausgibt.

Statement  
sql
1
SELECT *, 6371 * ACos( Cos(RADIANS(Lat)) * Cos(RADIANS(49.0707)) * Cos(RADIANS(7.97057) - RADIANS(Lng)) + Sin(RADIANS(Lat)) * Sin(RADIANS(49.0707)) ) AS Distance FROM GeoPC_DE ORDER BY Distance;

Auf der Quellseite heißt es dann weiter, ich könnte über WHERE die Ergebnisse auf eine bestimmte Distanz einschränken. Leider bekomme ich immer eine Fehlermeldung, dass das Feld Dinstance nicht vorhanden wäre, was ja auch so ist! Aber wie soll ich das ganze dann mit WHERE einschränken?

Statement 2  
sql
1
SELECT *, 6371 * ACos( Cos(RADIANS(Lat)) * Cos(RADIANS(49.0707)) * Cos(RADIANS(7.97057) - RADIANS(Lng)) + Sin(RADIANS(Lat)) * Sin(RADIANS(49.0707)) ) AS Distance FROM GeoPC_DE WHERE Distance < 100 ORDER BY Distance;


Peter Göbel
Beiträge: 41

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Peter Göbel Peter Göbel, am Samstag den 24.04.2010 um 14:00:57

Du musst am Anfang eine Variable deklarieren.

 
HTML
1
2
DECLARE @Distance int;
SET @Distance = 0;

Und dann müsste deine Abfrage so aussehen:

 
HTML
1
SELECT *, 6371 * ACos( Cos(RADIANS(Lat)) * Cos(RADIANS(49.0707)) * Cos(RADIANS(7.97057) - RADIANS(Lng)) + Sin(RADIANS(Lat)) * Sin(RADIANS(49.0707)) ) AS @Distance FROM GeoPC_DE WHERE @Distance < 100 ORDER BY @Distance;


Bambusstock
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Bambusstock Bambusstock, am Samstag den 24.04.2010 um 14:17:11
Zitat von: Peter Göbel

Du musst am Anfang eine Variable deklarieren.

 
HTML
1
2
DECLARE @Distance int;
SET @Distance = 0;

Und dann müsste deine Abfrage so aussehen:

 
HTML
1
SELECT *, 6371 * ACos( Cos(RADIANS(Lat)) * Cos(RADIANS(49.0707)) * Cos(RADIANS(7.97057) - RADIANS(Lng)) + Sin(RADIANS(Lat)) * Sin(RADIANS(49.0707)) ) AS @Distance FROM GeoPC_DE WHERE @Distance < 100 ORDER BY @Distance;

Erstmal vielen Dank für die Antwort! Leider bekomme ich noch folgenden Fehler, mit dem ich nicht umzugehen weiß:

DECLARE@Distance DOUBLE;

MySQL said:

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'DECLARE @Distance DOUBLE' in Zeile 1


Peter Göbel
Beiträge: 41

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Peter Göbel Peter Göbel, am Samstag den 24.04.2010 um 15:08:21

Also Google sagt mir, dass der Fehler entweder durch eine negativen Wert oder durch den Server zustande kommt.

Zwischen DECLARE und dem @ muss aber auch ein Leerzeichen stehen. Vielleicht ist's ja wirklich nur ein Syntax-Fehler.


Bambusstock
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Bambusstock Bambusstock, am Samstag den 24.04.2010 um 15:15:12

Also bei den Berechnungen kommen unter anderem folgende Werte heraus: 145.380882766905
9.49352979660034e-05

Liegt es vielleicht an letzterem und wenn ja, wie kann ich solche Werte verhindern?!


Peter Göbel
Beiträge: 41

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Peter Göbel Peter Göbel, am Samstag den 24.04.2010 um 15:40:30

Jo, mit ROUND. Näheres dazu hier.


Bambusstock
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Bambusstock Bambusstock, am Samstag den 24.04.2010 um 15:47:16

Okay, ich gebs auf! Es kommt immer derselbe Fehler am Anfang... :(


Peter Göbel
Beiträge: 41

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Problem mit WHERE" von Peter Göbel Peter Göbel, am Samstag den 24.04.2010 um 15:53:34

Dann ist's vielleicht wirklich ein Fehler am Server. Im Internet kursieren vielen Klagen über den Fehler - meistens ist die MySQL Version oder irgendwelche Servereinstellungen schuld.