我想在SQL2個月之間的分裂假期成2排,例如:拆分2日期爲2排ISQ
EmpId StartDate EndDate TotalDays
1 2017/5/25 2017/6/10 16
我需要把它拆分成2行類似如下:
EmpId StartDate EndDate TotalDays
1 2017/5/25 2017/5/31 6
1 2017/6/1 2017/6/10 10
感謝您
我想在SQL2個月之間的分裂假期成2排,例如:拆分2日期爲2排ISQ
EmpId StartDate EndDate TotalDays
1 2017/5/25 2017/6/10 16
我需要把它拆分成2行類似如下:
EmpId StartDate EndDate TotalDays
1 2017/5/25 2017/5/31 6
1 2017/6/1 2017/6/10 10
感謝您
假設假期只有有一個月的分裂(如你的例子):
select empid, startdate,
(case when eomonth(startdate) < enddate then eomonth(startdate) else enddate end) as enddate
from t
union all
select empid, dateadd(day, 1, eomonth(startdate)), enddate
from t
where eomonth(startdate) < enddate;
那麼,這不會給TotalDays
,但你可以使用子查詢和datediff()
。
謝謝你的回答,我更新我的例子 –
我使用聲明如下 select id,name,Datestart,DateEnd, (case eomonth(Datestart)
@AymanQadah。 。 。在你的問題中沒有'name',在我的答案中沒有。 –
「update row where ..」和「insert ..」在一起可能是? (只是一個工作) –