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