正しい方法でクエリを書くのに苦労しています。それは機能しますが、エラーが発生します:
新しいステートメントが見つかりましたが、それと前のステートメントの間に区切り文字がありません (選択に近い)
明らかに、私はまだこのエラーで作業できますが、#1. 私は対処するための「ハッキー」な方法と#2が特に好きではありません。クエリを実行しようとすると、php で問題が発生します。
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 の場合、Validation_Date に 150 日を追加します)。
以下のようなもの:
Process_ID | Process_Name | Validation_Date | Due_Date | Due_Days | Risk_Level
1 My_Process 2017-02-17 2017-07-17 -150 High
だからここに; Due_Date は、Validation Date に 150 (Risk_Level) を加算して作成されています。
現在のクエリ
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
私の最初の「選択」句は赤くハイライトされています。ここにエラー メッセージが表示されます。誰かが私が間違っている場所を教えてくれれば、それは大歓迎です! ありがとう