2017-05-10 9 views
0

PHPとMS SQL Server OBDC Connectで動作します。ニアミ検索を行いますが、エラーが表示されます:エイリアスでもMS SQL Serverとカラム名が無効

DATABASE QUERY ERROR [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'distance'. 

距離はエイリアスですか?エラーが発生するのはなぜですか?それがうまくいけば、うまくいきます。

$sql_nearme = "SELECT place.place_logo, place.place_rank, place.percent_points, place.points, place.place_id, place.place_adress, place.place_description, place.place_photo, place.place_name,(6371 * acos(cos(radians(".$map['results'][0]['geometry']['location']['lat'].")) * cos(
         radians(place.place_lat) 
       ) * cos(
         radians(place.place_long) - radians(".$map['results'][0]['geometry']['location']['lng'].") 
       ) + sin(
         radians(".$map['results'][0]['geometry']['location']['lat'].") 
       ) * sin(
         radians(place.place_lat) 
       ) 
      ) 
     ) AS distance 
    FROM place WHERE distance < 100 ORDER BY distance ASC OFFSET ".$blatt_start." ROWS FETCH NEXT ".$blatt_end." ROWS ONLY"; 
+0

あなたの句 –

+0

iがMSSQLに別名でHAVING使用することはできでエイリアスを使用することはできませんか? – Burhan

+0

http://stackoverflow.com/a/14049515/575376 –

答えて

0

where句にエイリアスを使用することはできません。 where句でcase文を使用するか、またはwhere句なしでサブクエリにクエリを変換することができます。この場合、そのエイリアスはwhere句で確認できるカラム名になります。

0

あなたは、サブクエリの中に入れたり、以下のようにWHERE句で全体の状態を使用する必要があります。

$sql_nearme = "SELECT * FROM (SELECT place.place_logo, place.place_rank, place.percent_points, place.points, place.place_id, place.place_adress, place.place_description, place.place_photo, place.place_name,(6371 * acos(cos(radians(".$map['results'][0]['geometry']['location']['lat'].")) * cos(
         radians(place.place_lat) 
       ) * cos(
         radians(place.place_long) - radians(".$map['results'][0]['geometry']['location']['lng'].") 
       ) + sin(
         radians(".$map['results'][0]['geometry']['location']['lat'].") 
       ) * sin(
         radians(place.place_lat) 
       ) 
      ) 
     ) AS distance 
    FROM place) A WHERE A.distance < 100 ORDER BY A.distance ASC OFFSET ".$blatt_start." ROWS FETCH NEXT ".$blatt_end." ROWS ONLY"; 
関連する問題