次のコードの何が問題になっているのか知りたいのですが。
cursor.execute("""SELECT calldate, dst, billsec, accountcode, disposition,
case when cast(substring(dst,4,1), unsigned) <= 5 then
billsec/60*%s as total
else
billsec/60*%s as total
end case
FROM cdr where calldate >= '%s' and calldate < '%s' and disposition like '%s' and accountcode = '%s' and dst like '%s'""" %(rate_fixo, rate_movel, start_date, end_date, status, accountcode, destino))
この方法で試しましたが、機能しませんでした。
cursor.execute("""SELECT calldate, dst, billsec, accountcode, disposition,
case when cast(substring(dst,4,1), unsigned) <= 5 then
billsec/60*%s
else
billsec/60*%s
end as total
FROM cdr where calldate >= '%s' and calldate < '%s' and disposition like '%s'
and accountcode = '%s' and dst like '%s'"""
%(rate_fixo, rate_movel, start_date, end_date, status, accountcode, destino))
エラー:
「SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、'unsignedの近くで使用する正しい構文を確認してください)<= 5 then billsec / 60 * 0.1 else billsec / 60 * 0.2 end as total FROM cdr 1行目でw'")