Определите функцию, которая добавляет дни к дате, пропуская выходные дни:
create function dbo.udf_AddWorkingDays(@dateToIncrement as date, @daysToAdd as int)
returns datetime
as
begin
SET @dateToIncrement = dateadd(d, @daysToAdd, @dateToIncrement)
--skip sundays
IF datename(DW, @dateToIncrement) = 'sunday'
SET @dateToIncrement = dateadd(d, 1, @dateToIncrement)
--skip saturdays
IF datename(DW, @dateToIncrement) = 'saturday'
SET @dateToIncrement = dateadd(d, 2, @dateToIncrement)
return cast(@dateToIncrement AS datetime)
end
Используйте функции в вашем условии соединения:
declare @tableA table ([Date] date , [Value] decimal(10,2))
declare @tableB table ([Date] date , [Value] decimal(10,2))
insert into @tableA values
('2018-11-08', 2.3)
,('2018-11-09', 4.3)
,('2018-11-12', 2.9)
,('2018-11-13', 3.9)
insert into @tableB values
('2018-11-07', -6.99 )
,('2018-11-08', 12.3333)
,('2018-11-09', 14.22 )
,('2018-11-12', 3.66 )
select A.[Date], A.[Value], B.[Value]
from @tableA A
inner join @tableB B on A.[Date] = dbo.udf_AddWorkingDays(B.[Date], 1)
Результат: