2016-11-19 61 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 

我不得不結果顯示在前端。

result in frontend

+1

如果你想修改數據庫字段,你這樣做都是錯誤的。修改是使用'UPDATE'完成的,而不是'SELECT'。嘗試在網上尋找,告訴我們一些努力(至少)試圖解決它,然後如果它仍然無法工作,或者你有任何問題,回到這裏,你會得到幫助 –

回答

0

一般的答案是

select date_sub(now(), interval 10 day) 

可以更換now()從表中任何日期,可以更改爲daymonthyear

結果從我示例是今天10天前的日期。例如,如果你只想過濾10天以前的日期,你可以這樣做:

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

我寫了一個普通的答案這將幫助你和谷歌搜索人員尋找一般答案。如果你想讓我把你的sql語句修改爲你的特定場景,請用換行符對它進行一些格式化,這樣我就能理解它。 –