【发布时间】:2019-01-29 01:46:27
【问题描述】:
很抱歉这个基本问题,但我试图在 R 中使用 sqldf 函数运行以下代码,但每次它显示“result_create(conn@ptr, statement) 中的错误:靠近' )': 语法错误”,我找不到错误的确切位置。
我尝试以不同的方式缩进/格式化,但“near ')'”的错误指示一直存在。
似乎所有括号都很好。
代码:
sqldf("
SELECT Cia_2, Nombre_cia_2, N_orden_2, Tipo_orden_2, N_linea_2, N_direc_2, Nombre_alfa_2, Fecha_orden_2,
Surtido_programado_2, Original_prometida_2,
N_orden, Tipo_orden, N_linea, Cia,
Cant_recibida_2, Cant_pendiente_2, Cantidad_2, estado_sig_2, estado_ult_2,
(case when [N_orden_2] is null then 'SinOC' else 'ConOC' end) as TieneOC,
(case when [Cant_recibida_2]=0 and [Cant_pendiente_2]=0 and [estado_sig_2]=999 then 'Anulada'
else (case when [Cant_recibida_2] = [Cantidad_2] and [estado_sig_2] = 999 and [Tiene_OC_2] = 'SinOC' then 'Anulada' else 'NoAnulada' )) as Anulada,
(case when [N_direc_2] = 35999999 then 'Normal'
else (case when [N_direc_2] = 35999998 then 'Urgente'
else (case when [N_direc_2] = 35999997 then 'Emergente'
else (case when [N_direc_2] = 35999995 then 'Proyecto'
else (case when [N_direc_2] = 35999994 then 'Importaciones' else 'Expost' ))))) as TipoReq,
Unidad_negocios_2,
aprob_or_2.LastOfFecha_aprobac,
[SumOfOrden de Cambio_2]
FROM bases_or_con_oc
LEFT JOIN aprob_or_2 ON (N_orden = aprob_or_2.N_orden_OR)
AND (Tipo_orden = aprob_or_2.Tipo_ordenOR)
AND (N_linea = aprob_or_2.N_lineaOR)
WHERE estado_sig_2 > 110
AND (case when [Cant_recibida_2] = 0 and [Cant_pendiente_2] = 0 and [estado_sig_2] = 999 then 'Anulada'
else (case when [Cant_recibida_2] = [Cantidad_2] and [estado_sig_2] = 999 and [Tiene_OC_2] = 'SinOC'
then 'Anulada' else 'NoAnulada')) = 'noAnulada'
")
我也尝试排除一些行,以便找出错误点...
你知道发生了什么吗?
【问题讨论】:
-
CASE语句不需要用括号括起来。
标签: sql r sqlite rstudio sqldf