I以下の問題があります。同時に問合せは、日付を入力し
例えばユーザは、例えば29/04/2017
が02/05/2017
(オフィスに日付リターン)を終了するために三日間の従業員の休暇期間が開始すると入力した場合 を従業員が休暇をリクエストした場合、Empvacationテーブルに既に休暇が格納されています(フィールドStartdate 01/05/2017
&フィールドEndDate 04/05/2017
入力した休暇を取得するクエリが干渉します。格納されたものの前に使用されました 私は以下を試して、うまく動作します
このクエリは
28/04/2017 to 02/05/2017 query shows the date used (01/05/2017 to 04/05/2014)
29/04/2017 to 03/05/2017 query shows the date used (01/05/2017 to 04/05/2014)
01/05/2017 to 02/05/2017 query shows the date used (01/05/2017 to 04/05/2014)
02/05/2017 to 04/05/2017 query shows the date used (01/05/2017 to 04/05/2014)
01/05/2017 to 03/05/2017 query shows the date used (01/05/2017 to 04/05/2014)
01/05/2017 to 04/05/2017 query shows the date used (01/05/2017 to 04/05/2014)
のような任意の使用日数 と非常によく動作しますが、ユーザーが2017年3月5日
クエリに
2017年2月5日のような日付を入力すると、何も表示せず、休暇は受け入れられます。実際に許可されていない従業員は、すでに休暇中です。
私が使用するクエリ
SELECT TblEmpVacation.*, TblVacations.VacationName, tblEmployees.Emp_Name, TblEmpVacation.DateStart, TblEmpVacation.DateEnd
FROM tblEmployees INNER JOIN (TblVacations INNER JOIN TblEmpVacation ON TblVacations.VacationCode = TblEmpVacation.VacationNO) ON tblEmployees.Emp_ID = TblEmpVacation.EmpNo
WHERE tblEmployees.Emp_Name="Khaled Eissa" AND TblEmpVacation.DateStart Between 5/2/2017 And 5/3/2017 AND TblEmpVacation.DateStart<>5/2/2017
UNION
SELECT TblEmpVacation.*, TblVacations.VacationName, tblEmployees.Emp_Name, TblEmpVacation.DateStart, TblEmpVacation.DateEnd
FROM tblEmployees INNER JOIN (TblVacations INNER JOIN TblEmpVacation ON TblVacations.VacationCode = TblEmpVacation.VacationNO) ON tblEmployees.Emp_ID = TblEmpVacation.EmpNo
WHERE tblEmployees.Emp_Name="Khaled Eissa" AND TblEmpVacation.DateEnd Between 5/2/2017 And 5/3/2017 AND TblEmpVacation.DateEnd<>5/3/2017
任意のヘルプここ
あなたの質問が何であるか全く分かりません。あなたの質問は何ですか? – Hogan
'to_char'メソッドを使って文字列を' WHERE'節で日付に変換する必要があるかもしれないと思います。 – Pons
編集した質問を見て、テーブルを見てください –