Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Расчет рабочих дней  [new]
vah
Member

Откуда:
Сообщений: 2599
Скажите пожалуйста,
если использовать этот алгоритм https://www.sql.ru/blogs/decolores/212
то не понятно как работает Diff в этом случае (как на картинке)
select [dbo].[WorkDayDiff]('20190306','20190311')


Заранее благодарен.

К сообщению приложен файл. Размер - 29Kb
11 мар 19, 11:56    [21828989]     Ответить | Цитировать Сообщить модератору
 Re: Расчет рабочих дней  [new]
vah
Member

Откуда:
Сообщений: 2599
vah,

может DateDiff тут лучше так сделать?

declare @i int
set @i=0

select @i=@i+1
from Calendar 
where IsWorkday=1 and DateValue between '20190307' and '20190311'

select @i


и тогда вообще не поле WorkIndex с триггером не нужно?
Модератор: Для кода специальный тег есть -- [src]. Уже пора бы выучить.
11 мар 19, 13:11    [21829075]     Ответить | Цитировать Сообщить модератору
 Re: Расчет рабочих дней  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6271
vah,

Вы о чем спрашиваете? Хотите разобраться в принципе действия алгоритма?
11 мар 19, 13:13    [21829081]     Ответить | Цитировать Сообщить модератору
 Re: Расчет рабочих дней  [new]
vah
Member

Откуда:
Сообщений: 2599
Владислав Колосов,

корректен ли мой вариант?
11 мар 19, 13:20    [21829091]     Ответить | Цитировать Сообщить модератору
 Re: Расчет рабочих дней  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6271
vah,

корректность алгоритма проверяется сравнением ожидаемого результата с полученным.
Вы сам можете убедиться - работает он или нет. Можно было count() использовать для подсчета количества. По сути одно и то же.
11 мар 19, 13:53    [21829153]     Ответить | Цитировать Сообщить модератору
 Re: Расчет рабочих дней  [new]
vah
Member

Откуда:
Сообщений: 2599
Владислав Колосов,

вдруг я что-то не учел...
11 мар 19, 13:55    [21829160]     Ответить | Цитировать Сообщить модератору
 Re: Расчет рабочих дней  [new]
Wlr-l
Member

Откуда:
Сообщений: 478
vah,

Прочитайте еще раз статью.

Поле WorkIndex предназначено для того, чтобы не считать количество.
Достаточно найти разность WorkIndex-ов заданных дат.
11 мар 19, 15:51    [21829339]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить