Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как составить следующий запрос? / 14 сообщений из 14, страница 1 из 1
05.09.2019, 16:39
    #39858038
seg856
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
В таблице NotWork хранится номер больничного листа (n_nwds), количество дней листа (days), номер больничного листа продолжением которого является этот лист (n_nwds_main_pe).

Нужно вычислить для больничных листов суммарное количество дней нетрудоспособности, включая все листы, продолжением которых является.

Больничный может быть без продолжения, а может образовываться длинная цепочка из больничных.

С помощью курсоров очень долго считает.
...
Рейтинг: 0 / 0
05.09.2019, 16:42
    #39858040
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
Больничные образуют дерево. Так что CTE в руки.

Главный вопрос - гарантирована ли непрерывность листов? не бывает ли наложений или разрывов?
...
Рейтинг: 0 / 0
05.09.2019, 16:42
    #39858041
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
seg856,

Recursive CTE
...
Рейтинг: 0 / 0
05.09.2019, 16:45
    #39858044
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
А вообще, если это стадия разработки, вместо (или в дополнение к) номера предыдущего храните номер первого больничного в цепи. Сильно упростите себе жизнь, пусть и ценой некоторого усложнения CHECK CONSTRAINT.
...
Рейтинг: 0 / 0
05.09.2019, 16:46
    #39858046
seg856
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
Akina, все бывает. Ничего не гарантировано. Может быть даже один больничный источником двух. Ввести могут что угодно.
Можно рассматривать только непрерывные цепочки, остальные игнорировать.
...
Рейтинг: 0 / 0
05.09.2019, 16:48
    #39858047
seg856
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
Akina,
программа не наша. Нужно запрос делать к чужой БД.
...
Рейтинг: 0 / 0
05.09.2019, 16:59
    #39858057
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
seg856Может быть даже один больничный источником двух. ...
Можно рассматривать только непрерывные цепочки, остальные игнорировать.И какую из цепочек тогда рассматривать?
...
Рейтинг: 0 / 0
05.09.2019, 17:23
    #39858077
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
...
Рейтинг: 0 / 0
05.09.2019, 17:24
    #39858078
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
iiyama,

Обманул, пример D конечно
...
Рейтинг: 0 / 0
05.09.2019, 19:30
    #39858132
seg856
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
Akina, любую. Таких некорректных данных немного. Стопроцентной правильности не нужно.
...
Рейтинг: 0 / 0
05.09.2019, 20:40
    #39858140
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
Akinaseg856Может быть даже один больничный источником двух. ...
Можно рассматривать только непрерывные цепочки, остальные игнорировать.И какую из цепочек тогда рассматривать?Вообще этот вопрос не к программисту, а к другим людям (налоговой, бухгалтерии и т.д.)
...
Рейтинг: 0 / 0
06.09.2019, 07:17
    #39858236
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
alexeyvgэтот вопрос не к программисту, а к другим людям (налоговой, бухгалтерии и т.д.)Но задать их нужно. И это обязан сделать программист. А он сам в задаче плавает - "любую"!
...
Рейтинг: 0 / 0
06.09.2019, 20:12
    #39858633
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
Akinaalexeyvgэтот вопрос не к программисту, а к другим людям (налоговой, бухгалтерии и т.д.)Но задать их нужно. И это обязан сделать программист. А он сам в задаче плавает - "любую"!"Плавает в задаче" выражается в том, что он даёт какой то ответ на этот вопрос ("любую", или ещё какую то).
Правильный ответ не плавающего в задаче программиста: "не знаю, мне всё равно, какой алгоритм мне укажут, такой и реализую"
...
Рейтинг: 0 / 0
07.09.2019, 10:43
    #39858703
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить следующий запрос?
alexeyvgAkinaпропущено...
И какую из цепочек тогда рассматривать?Вообще этот вопрос не к программисту, а к другим людям (налоговой, бухгалтерии и т.д.)

Потом, на допросах программист научится и правильные вопросы задавать, и правильные ответы давать
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как составить следующий запрос? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]