sql >> Base de Datos >  >> RDS >> Mysql

Cómo usar la cláusula HAVING y ORDER BY en sql

Usa where aquí en lugar de having .

having es útil para restringir las condiciones en valores agregados.
where es útil para restringir las condiciones en datos no agregados.

Actualizar
SQL Server no es MySQL, lo que funciona en uno...

  1. Que simplemente trabajar en el otro
  2. Es posible que deba modificarse ligeramente para que funcione
  3. Es posible que deba volver a diseñarse por completo antes de que funcione.

Esto debería ser lo que necesitas

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  ) ) ) ;