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 ...
- Mai gerade Arbeit auf der anderen Seite
- Muss möglicherweise etwas angepasst werden, damit es funktioniert
- 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 ) ) ) ;