【发布时间】:2020-04-20 16:36:02
【问题描述】:
我想运行这个查询但是得到一个错误:
error sql (1064):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在第 97 行的 '' 附近使用的正确语法
我的查询是:
CREATE PROCEDURE `ControlRecibos` ()
BEGIN
Select distinct T0.gestionescobra_tks_regional
,T0.gestionescobra_tks_cobrador
,T0.gestionescobra_tks_poliza
,T0.gestionescobra_tks_codigodecli
,T0.gestionescobra_tks_apellidoyno
,T0.gestionescobra_tks_formadepago
,T0.gestionescobra_tks_numerorecib
,T0.gestionescobra_tks_observacion
,T0.gestionescobra_tks_fechareport
,T0.gestionescobra_tks_montoprima
,T1.nocobradosmes_tks_montoprimama
,T1.nocobradosmes_tks_montoprima
From vtiger_gestionescobra T0 inner join
( Select *
From(
Select distinct gestionescobra_tks_cobrador,gestionescobra_tks_poliza,sum(gestionescobra_tks_montoprima) as MonCobrado
From vtiger_gestionescobra
where gestionescobra_tks_fechareport between '2020-03-20' and '2020-04-20' and
gestionescobra_tks_actividad = 'Cobranza' and gestionescobra_tks_numerorecib <>'' and gestionescobra_tks_notransacci <>'' and gestionescobra_tks_montoprima <> 0 and gestionescobra_tks_formadepago='M' group by gestionescobra_tks_cobrador,gestionescobra_tks_poliza )T0 inner Join (Select T0.nocobradosmes_tks_poliza,T0.nocobradosmes_tks_montoprimama,T0.nocobradosmes_tks_montoprima
From vtiger_nocobradosmes T0 inner join (
Select distinct nocobradosmes_tks_poliza,max(nocobradosmesid) as val
From vtiger_nocobradosmes
group by nocobradosmes_tks_poliza)
T1 ON T0.nocobradosmes_tks_poliza=T1.nocobradosmes_tks_poliza
where T0.nocobradosmesid=T1.val and nocobradosmes_tks_formadepago='Mensual')
T1 ON T0.gestionescobra_tks_poliza=T1.nocobradosmes_tks_poliza
where (nocobradosmes_tks_montoprima*50)/100>MonCobrado
Union
Select *
From(Select gestionescobra_tks_cobrador,gestionescobra_tks_poliza,sum(gestionescobra_tks_montoprima) as MonCobrado
From vtiger_gestionescobra
where gestionescobra_tks_fechareport between '2020-03-20' and '2020-04-20' and
gestionescobra_tks_actividad = 'Cobranza' and gestionescobra_tks_numerorecib <>'' and
gestionescobra_tks_notransacci <>'' and gestionescobra_tks_montoprima <> 0 and gestionescobra_tks_formadepago='T'
group by gestionescobra_tks_cobrador,gestionescobra_tks_poliza)
T0 inner Join
(Select T0.nocobradosmes_tks_poliza,T0.nocobradosmes_tks_montoprimama,T0.nocobradosmes_tks_montoprima
From vtiger_nocobradosmes T0 inner join (Select distinct nocobradosmes_tks_poliza,max(nocobradosmesid) as val
From vtiger_nocobradosmes
group by nocobradosmes_tks_poliza) T1 ON T0.nocobradosmes_tks_poliza=T1.nocobradosmes_tks_poliza
where T0.nocobradosmesid=T1.val and nocobradosmes_tks_formadepago='Trimestral' )
T1 ON T0.gestionescobra_tks_poliza=T1.nocobradosmes_tks_poliza
where (nocobradosmes_tks_montoprima)/3>MonCobrado
Union
Select *
From(Select gestionescobra_tks_cobrador,gestionescobra_tks_poliza,sum(gestionescobra_tks_montoprima) as MonCobrado
From vtiger_gestionescobra
where gestionescobra_tks_fechareport between '2020-03-20' and '2020-04-20' and
gestionescobra_tks_actividad = 'Cobranza' and gestionescobra_tks_numerorecib <>'' and
gestionescobra_tks_notransacci <>'' and gestionescobra_tks_montoprima <> 0 and gestionescobra_tks_formadepago='S'
group by gestionescobra_tks_cobrador,gestionescobra_tks_poliza)
T0 inner Join
(Select T0.nocobradosmes_tks_poliza,T0.nocobradosmes_tks_montoprimama,T0.nocobradosmes_tks_montoprima
From vtiger_nocobradosmes T0 inner join
(Select distinct nocobradosmes_tks_poliza,max(nocobradosmesid) as val
From vtiger_nocobradosmes
group by nocobradosmes_tks_poliza) T1 ON T0.nocobradosmes_tks_poliza=T1.nocobradosmes_tks_poliza
where T0.nocobradosmesid=T1.val and nocobradosmes_tks_formadepago='Semestral')
T1 ON T0.gestionescobra_tks_poliza=T1.nocobradosmes_tks_poliza
where (nocobradosmes_tks_montoprima)/6>MonCobrado
Union
Select *
From(Select gestionescobra_tks_cobrador,gestionescobra_tks_poliza,sum(gestionescobra_tks_montoprima) as MonCobrado
From vtiger_gestionescobra
where gestionescobra_tks_fechareport between '2020-03-20' and '2020-04-20'and
gestionescobra_tks_actividad = 'Cobranza' and gestionescobra_tks_numerorecib <>'' and
gestionescobra_tks_notransacci <>'' and gestionescobra_tks_montoprima <> 0 and gestionescobra_tks_formadepago='A'
group by gestionescobra_tks_cobrador,gestionescobra_tks_poliza)
T0 inner Join
(Select T0.nocobradosmes_tks_poliza,T0.nocobradosmes_tks_montoprimama,T0.nocobradosmes_tks_montoprima
From vtiger_nocobradosmes
T0 inner join (
Select distinct nocobradosmes_tks_poliza,max(nocobradosmesid) as val
From vtiger_nocobradosmes
group by nocobradosmes_tks_poliza
) T1 ON T0.nocobradosmes_tks_poliza=T1.nocobradosmes_tks_poliza
where T0.nocobradosmesid=T1.val and nocobradosmes_tks_formadepago='Anual'
)
T1 ON T0.gestionescobra_tks_poliza=T1.nocobradosmes_tks_poliza
where (nocobradosmes_tks_montoprima)/12>MonCobrado
)
T1 ON T0.gestionescobra_tks_cobrador=T1.gestionescobra_tks_cobrador
and T0.gestionescobra_tks_poliza=T1.gestionescobra_tks_poliza
where gestionescobra_tks_fechareport between '2020-03-20' and '2020-04-20' and
gestionescobra_tks_actividad = "Cobranza"
and gestionescobra_tks_numerorecib <>''
and gestionescobra_tks_notransacci <>''
and gestionescobra_tks_montoprima <> 0
ORDER BY 1,2;
结束
MYSQL WorkBench 仅显示最后两行的问题,例如 2 中的“缺少分号”和 END 中发现的无关输入
有什么问题?
【问题讨论】:
-
我们对数据库一无所知,因此很难提供帮助。但是,您应该直接在 MariaDB 命令提示符下运行查询。见mariadb.com/kb/en/basic-sql-debugging。我还将对查询进行分段并仅将联合的内容加载到工作台中,以便更轻松地确定问题。