0

正しい方法でクエリを書くのに苦労しています。それは機能しますが、エラーが発生します:

新しいステートメントが見つかりましたが、それと前のステートメントの間に区切り文字がありません (選択に近い)

明らかに、私はまだこのエラーで作業できますが、#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]

計画は次のとおりです。

  1. プロセスの詳細を選択
  2. 参加検証の詳細
  3. 参加リスクの詳細
  4. 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

私の最初の「選択」句は赤くハイライトされています。ここにエラー メッセージが表示されます。誰かが私が間違っている場所を教えてくれれば、それは大歓迎です! ありがとう

4

1 に答える 1