sql - Create a Due Date Not Including Weekends from a column given Specific SLA Days -


i have "daysuntildue" column says when document needs completed by. need calculate "due date" based on "days due" using "logged day" column , exclude both saturday , sunday.

all have columns know need work from. have code case when statement excluded sat , sun not sure how incorporate need do. have columns need , linked way need be. struggling how make statement says calculate due date when document's "logtime" using existing "daysuntildue", exclude weekends

select      categoryname,  doccategory, daysuntildue,  trannbr,  duedate,  logtime queue inner join wqmtransactions on queue.trannbr = wqmtransactions.trannbr inner  join   serviceq inner join categorylist on serviceqn.tranid =      categorylist.tranid   inner join category on categorylist.categoryid =     category.categoryid   on queue.categoryid = category.categoryid , queue.tranid = serviceq.tranid 

maybe lack of sleep, conceptually can't determine how what.

i'm assuming need use case statement built qry doing similar.

case when doc in ( 'pos', 'card' )      cast(dateadd(d, case datepart(dw, dateentered)                             when 7 2                             when 1 1                             else 0                           end, dateentered) + ( datepart(dw,                                                       dateadd(d,                                                       case datepart(dw,                                                       dateentered)                                                       when 7 2                                                       when 1 1                                                       else 0                                                       end, dateentered))                                                 - 2 + 5 ) % 5           + ( ( datepart(dw, dateadd(d, case datepart(dw, dateentered)                                           when 7 2                                           when 1 1                                           else 0                                         end, dateentered)) - 2 + 5 )               / 5 ) * 7 - ( datepart(dw,                                      dateadd(d,                                              case datepart(dw,                                                       dateentered)                                                when 7 2                                                when 1 1                                                else 0                                              end, dateentered)) - 2 ) date)      else cast(dateadd(d, case datepart(dw, dateentered)                             when 7 2                             when 1 1                             else 0                           end, dateentered) + ( datepart(dw,                                                       dateadd(d,                                                       case datepart(dw,                                                       dateentered)                                                       when 7 2                                                       when 1 1                                                       else 0                                                       end, dateentered))                                                 - 2 + 10 ) % 5           + ( ( datepart(dw, dateadd(d, case datepart(dw, dateentered)                                           when 7 2                                           when 1 1                                           else 0                                         end, dateentered)) - 2 + 10 )               / 5 ) * 7 - ( datepart(dw,                                      dateadd(d,                                              case datepart(dw,                                                       dateentered)                                                when 7 2                                                when 1 1                                                else 0                                              end, dateentered)) - 2 ) date) end 'required sla date'  

i tried correct query. calculated duedate. duedate null when daysuntildue = 0.

select      categoryname,  doccategory, daysuntildue,  trannbr,  logtime, dateadd(day, a.n, loggedday) duedate queue  inner join wqmtransactions on queue.trannbr = wqmtransactions.trannbr  inner join serviceq on queue.categoryid = category.categoryid , queue.tranid = serviceq.tranid inner join categorylist on serviceqn.tranid = categorylist.tranid  inner join category on categorylist.categoryid = category.categoryid  cross apply ( select coalesce(max(number)+1, 0) n from( select top (daysuntildue) number  master..spt_values type = 'p' , datediff(day, -number-1, loggedday) % 7 not in (5,6) order number )  a)  

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

jquery - How would i go about shortening this code? And to cancel the previous click on click of new section? -