Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser les clauses HAVING et ORDER BY dans sql

Utilisez where ici au lieu de having .

having est utile pour restreindre les conditions sur les valeurs agrégées.
where est utile pour restreindre les conditions sur les données non agrégées.

Mettre à jour
SQL Server n'est pas MySQL, ce qui marche sur un...

  1. Peut juste travailler de l'autre
  2. Peut devoir être légèrement modifié pour fonctionner
  3. Peut nécessiter une refonte complète avant que cela fonctionne.

Cela devrait être ce dont vous avez besoin

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