Ошибка с предложением где в запросе sql - PullRequest
0 голосов
/ 31 августа 2010

У меня следующий SQL-запрос, когда я его выполняю, отображаются нулевые строки. У меня есть поле с именем расстояния, в котором значение равно нулю. Когда я выполняю этот запрос, поле расстояния будет заполнено некоторым числовым значением, но если я укажу условие расстояния <2или расстояние <10 или ... отображается тот же результат, я могу знать, в чем проблема. </p>

  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 ( 
   (StreetName like '%jayanagar%')
   and (Keyword like '%plumbing%' )
   and (distance<3)
   ) 
   ORDER BY distance;

Ответы [ 2 ]

2 голосов
/ 31 августа 2010

Вы получили ответы ранее ...

[ Как использовать предложения "HAVING" и "ORDER BY" в sql

Вы не можете ссылаться на расстояние до поляв предложении where вы должны использовать:

( 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  ) ) ) < 3
0 голосов
/ 01 сентября 2010

Этот конкретный запрос может быть успешно выполнен путем создания представления в SQL.создать бизнес представления в виде 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 расстояние ОТ Business_Details ORDER BY расстояние;В этом конкретном представлении содержатся результаты с указанием расстояния, после чего мы можем запросить представление бизнеса, чтобы манипулировать результатами для введенного нами значения расстояния выберите * из бизнеса, где (расстояние <2); </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...