2017-01-30 4 views
0

SQLで少し "複雑な"計算を計算しようとしています。私はPythonでプログラミングして、sqlite3を使用しています。関数のどこの部分を計算する

latフィールドとlngフィールドが2つの値の間にある最初のレコード(sと言う)を取得する必要があります。 LT:私はこれを書くために試してみた

s.lat < = LAT < = s.lat +アルファと< = LNG < = s.lng +ベータ

をs.lng:よう
何か、LG、αおよびβは、フロート変数です

 c.execute('SELECT * FROM squares WHERE (lat <= ? and ? <= lat  + ? and long <= ? and ? <= long + ? ',(lt,lt,alpha,lg,lg,beta)) 
     rslt =c.fetchone() 
     print rslt 

は、それが

01、どうもありがとうございまし例外を発生させるビット

サラ

+1

あなたは 'WHERE'の後に開かれた括弧を閉じるのを忘れました。あなたのコードが例外を発生させるという質問をするときは、常に完全なエラーメッセージを投稿してください。 – Duncan

答えて

0

ダンカンが正しくカッコを指摘しました。また、私はあなたの行の代わりに "BETWEEN"コマンドを使用します:

c.execute('SELECT * FROM squares WHERE (lat BETWEEN ? AND ?+? AND long BETWEEN ? AND ?+?'),(lt,lt,alpha,lg,lg,beta))