0
我努力以正确的方式编写查询。虽然它的工作我给出的错误:MySql声明和使用选择变量
A new statement was found but no delimiter between it and the previous one (near select)
很显然,我仍然可以用这个错误,但#1的工作。我不特别喜欢'哈克'的方法和#2。这导致在进一步下线试图运行查询的问题。
来自Google Research,它表明错误可能是一个错误但是我很怀疑相信这一点。
什么实际上,我试图做的:
我有3个表:
Table P [Process_ID+, Process_Name, Risk_ID*]
Table V [Validation_ID, Process_ID+, Validation_Date]
Table R [Risk_ID*, Risk_TimePeriod]
的计划是:
- 选择过程详细
- 加入验证详细信息
- 加入风险详情
- 根据Validation_Date和Risk_TimePeriod 生成“Due_Date”。如果时间段为150,则将150天添加到Validation_Date)。
喜欢的东西下面:
Process_ID | Process_Name | Validation_Date | Due_Date | Due_Days | Risk_Level
1 My_Process 2017-02-17 2017-07-17 -150 High
所以在这里;通过将150(Risk_Level)添加到验证日期来创建Due_Date。
当前查询
Set @TimePeriod =
(Select r.Risk_TimePeriod
from processes_active p
inner join processes_risk_config r
on r.Risk_ID = p.Process_Risk
where p.Process_ID = 2);
Select p.Process_ID,
p.Process_Name,
v.Validation_Date,
Date_Add(v.Validation_Date, interval @TimePeriod Day) as Due_Date,
Datediff(Now(), Date_Add(v.Validation_Date, interval @TimePeriod Day)) as Due_Days,
r.Risk_Level
From processes_active p
left JOIN processes_validations v
on p.Process_ID = v.Validation_Process_ID
inner join processes_risk_config r
on r.Risk_ID = p.Process_Risk
Where p.Process_ID = 2
Order By v.Validation_Date Desc
我的第一个 “选择” 子句红色突出显示。这是出现错误信息的地方。如果有人能指出我出错的地方,我将非常感谢!谢谢
你通过PHP脚本或MySQL控制台例如 – RiggsFolly
我把它从两个运行查询时出现此错误。 MySQL控制台会重现上述错误(实际查询在启动时突出显示,但仍显示结果)。在PHP中的问题是,因为MySQL中显示错误;由于fetch_assoc()错误,查询结果无法显示。 – billcox33