Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwendung der HAVING- und ORDER BY-Klausel in SQL

Verwenden Sie where hier statt having .

having ist nützlich, um Bedingungen für aggregierte Werte einzugrenzen.
where ist nützlich, um die Bedingungen für nicht aggregierte Daten einzuschränken.

Aktualisieren
SQL Server ist nicht MySQL, was auf einem läuft ...

  1. Mai gerade Arbeit auf der anderen Seite
  2. Muss möglicherweise etwas angepasst werden, damit es funktioniert
  3. Muss möglicherweise komplett überarbeitet werden, bevor es funktioniert.

Dies sollte das sein, was Sie brauchen

SELECT Id, 
       Name1, 
       ZipCode, 
       StreetName, 
       StreetNumber, 
       State1, 
       Lat, 
       Lng, 
       Keyword, 
       ( 6371 * ACOS( COS( (12.925432/57.2958) ) * COS(  (Lat/57.2958)  ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) + SIN( 12.925432/57.2958 ) * SIN(  Lat/57.2958  ) ) ) AS distance  
  FROM Business_Details  
  where (Keyword like '%plumber%')  
  and ( 6371 * ACOS( COS( (12.925432/57.2958) ) * COS(  (Lat/57.2958)  ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) + SIN( 12.925432/57.2958 ) * SIN(  Lat/57.2958  ) ) ) < 1.5
  ORDER BY ( 6371 * ACOS( COS( (12.925432/57.2958) ) * COS(  (Lat/57.2958)  ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) + SIN( 12.925432/57.2958 ) * SIN(  Lat/57.2958  ) ) ) ;