具有未捕获的错误:靠近“(”:尝试运行查询时的语法错误

时间:2019-04-18 09:15:44

标签: sql sqlite subquery

当我尝试运行此查询时,出现以下错误。我假设错误在于我的第一行查询。这还没有解决。谁能指出我错了?

WITH processed_users 
 AS (SELECT LEFT(u.phone_country, 2) AS short_phone_country, 
            u.id 
     FROM   users u) 
    SELECT t.user_id, 
   t.merchant_country, 
   Sum(t.amount / fxr.rate / Power(10, cd.exponent)) AS amount 
   FROM   transactions t 
   JOIN fx_rates fx 
     ON ( fx.ccy = t.currency 
          AND fx.base_ccy = 'USD' ) x`
   JOIN currency_details cd 
     ON cd.currency = t.currency 
   JOIN processed_users pu 
     ON pu.id = t.user_id 
     WHERE  t.source = 'IA' 

我收到此错误。

Uncaught Error: near "(": syntax error

1 个答案:

答案 0 :(得分:0)

我在您的查询中发现了一个细菌,您需要SUBSTR,因为sqllite中没有left

WITH processed_users 
 AS (SELECT SUBSTR(u.phone_country,-length(u.phone_country), 2) AS short_phone_country, 
            u.id 
     FROM   users u
    ) 
    SELECT t.user_id, 
   t.merchant_country, 
   Sum(t.amount / fxr.rate / Power(10, cd.exponent)) AS amount 
   FROM   transactions t 
   JOIN fx_rates fx 
     ON ( fx.ccy = t.currency 
          AND fx.base_ccy = 'USD' ) x
   JOIN currency_details cd 
     ON cd.currency = t.currency 
   JOIN processed_users pu 
     ON pu.id = t.user_id 
     WHERE  t.source = 'IA' 

我更愿意通过括号接受t.amount / fxr.rate / Power(10, cd.exponent)