2016-11-19 5 views
0

個人休暇は10日間です。私は私がフロントエンドに結果を表示する必要があり、残りの休暇は10日mysqlで指定された日から日数を差し引く

result i have

SELECT id, firstname,lastname,join_date, completion_date,title, leave_from,leave_to, Given_leave_Days,Taken_Leave_Days,Remaining_Leave_Days FROM (SELECT T1.id,T1.firstname,T1.lastname,T1.join_date,T1.completion_date,T0.title,T2.leave_from,T2.leave_to,T2.user_id,T0.Leave_Days as Given_leave_Days,SUM(DATEDIFF(T2.leave_to,T2.leave_from)+1) AS Taken_Leave_Days ,T0.Leave_Days - SUM(DATEDIFF(T2.leave_to,T2.leave_from)+1) as 'Remaining_Leave_Days' FROM users_leave_request T2 INNER JOIN users T1 ON T2.user_id = T1.id INNER JOIN leave_type T0 ON T2.leave_type_id = T0.id GROUP BY T1.id, T1.firstname, T1.lastname, T1.join_date,T1.completion_date,T0.title,T2.leave_from,T2.leave_to,Given_leave_Days order by firstname) A 

すなわち総個人休暇から減算する必要があります。あなたがテーブルから任意の日付のnow()を置き換えることができ、あなたがmonthためdayを変更することができます

result in frontend

+1

データベースのフィールドを変更する場合は、すべて間違っているとします。変更は 'SELECT'ではなく' UPDATE'を使って行われます。それをオンラインで見てみると、(少なくとも)それを解決しようとする努力を示してください、それでもまだうまくいかなかったり、何か問題があれば、ここに戻ってきて助けてください –

答えて

0

一般的な答えは

select date_sub(now(), interval 10 day) 

で、yearなど

結果、私から例は今日の10日前の日付です。たとえば、10日以上の日付のみをフィルタリングする場合は、次のようにします。

select * from mytable t where t.mydate < date_sub(now(), interval 10 day) 
+0

私は一般的な答えを書きましたそれはあなたと一般的な答えを探してGoogle検索から来る人々を助ける。 SQL文を特定のシナリオに修正したい場合は、改行を少し書式化して理解してください。 –

関連する問題