С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/89: Рейтинг темы: голосов - 89, средняя оценка - 4.65
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94

Определение выходных дней недели

23.05.2020, 13:59. Показов 19004. Ответов 17

Студворк — интернет-сервис помощи студентам
Добрый день !!!!

Нарисовать схему БД и написать запрос на языке T-SQL, выводящий расписание для междугородных автобусов на выходные дни текущего месяца.

Вопрос == Как определить выходные дни ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2020, 13:59
Ответы с готовыми решениями:

Как получить день недели из поля (DateTime) и связать с таблицей Наименований Дней недели
В одной таблице есть поле с датами. А в другой наименования дней недели на одном из иностранных языков. Как мне их связать в сохраненной...

Автоматическое проставление выходных дней
Мне нужно чтобы в БД SQL автоматически проставлялись выходные дни "В", и если в месяце меньше 31 дня, то лишние дни отмечались...

Определение дней недели по ее номеру
Доброго времени суток Если возможно, нужна помощь. В таблице есть поле Год и поле НомерНедели. Как по этим полям определить даты...

17
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18250 / 14174 / 5366
Регистрация: 17.03.2014
Сообщений: 28,851
Записей в блоге: 1
23.05.2020, 14:13
ivi, смотря что считать выходным днем. Если просто Сб и Вс, то тогда используй DATEPART с datepart=dw. Если требуется учесть государственные праздники, то нужно будет завести таблицу с календарем выходных и рабочих дней и дополнительно проверять её.
1
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
23.05.2020, 15:01  [ТС]
Ну сейчас текущий месяц май. Получается со всеми праздниками не только суббота и воскресенье

Добавлено через 13 минут
Это получается нужно делать 2 таблицы = Расписание на будние дни и расписание на праздничные. А таблицу с праздничными днями нужно связать с таблицей с праздничным расписанием ?

Добавлено через 1 минуту
Один ко многим

Добавлено через 2 минуты
Так что ли ?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18250 / 14174 / 5366
Регистрация: 17.03.2014
Сообщений: 28,851
Записей в блоге: 1
23.05.2020, 16:29
Лучший ответ Сообщение было отмечено ivi как решение

Решение

ivi, по моему хватит одной таблицы
T-SQL
1
2
3
4
5
CREATE TABLE HolidayCalendar
(
Date date NOT NULL,
isHoliday bit  NOT NULL
)
Заносим туда выходные и рабочие дни которые не являтся обычными выходными и рабочими днями. Затем в запросе выборки расписания можно написать условие вида (примерно)
T-SQL
1
2
3
4
WHERE (
    DATEPART(dw, ДатаПоездки) IN (6,7)
    OR EXISTS (SELECT * FROM HolidayCalendar WHERE IsHoliday=1 AND [Date] = ДатаПоездки)
) AND NOT EXISTS (SELECT * FROM HolidayCalendar WHERE IsHoliday=0 AND [Date] = ДатаПоездки)
Код наверняка можно улучшить сделав функцию который вернет даты указанного месяца/года с признаком рабочий/выходной. Тогда можно будет сделать JOIN на её результат.
1
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
26.05.2020, 17:03  [ТС]
Вот схема
Кликните здесь для просмотра всего текста

dbo.Bus там находятся автобусы == Икарус == Маршрутка
dbo.Driver Имена водителей
WeekendSchedule расписание в праздничные дни дни
UsualSchedule расписание в простые дни
Weekend Это таблица где написаны праздничные дни месяца нерабочие


К чему привязать таблицу Weekend или вообще оставить без связи не пойму
привязал к маршруткам но что то не то
к праздничному расписанию тоже как то не получается
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
26.05.2020, 18:30
бред полный
таба с расписанием должна содержать время на каждый день (дату). А уж является он (она) выходным - узнать по справочной табе на нужный год
0
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
26.05.2020, 19:07  [ТС]
ну я же создал эту справочную таблицу

Добавлено через 20 секунд
Weekend

Добавлено через 1 минуту
В этой таблице все выходные дни на текущий месяц == например май

Добавлено через 2 минуты
Хотя да можно и не разделять расписание на выходные и будние дни

Добавлено через 54 секунды
А все сложить в 1 таблицу ===

Добавлено через 1 минуту
Но это не меняет вопроса ==справочную таблицу Weekend нужно связывать или оставить без связей

Добавлено через 9 минут
Хотя такое построение уменьшит поиск на один подзапрос а именно выборку из общей таблицы маршруты выходных дней === всех маршрутов выходного дня или выборочного одного направления

Добавлено через 3 минуты
И да расписание содержит полную дату и время отправления каждого маршрута на каждый день в обоих таблицах

Добавлено через 8 минут
Во всех таблицах используется Timee DateTime NOT NULL, == где требуется дата и время
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
26.05.2020, 20:06
чувак, открой для себя join и не делай головы ни себе ни людям. Связи они как идеальные мужчины - не пьют, не курят и не существуют
1
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
27.05.2020, 15:54  [ТС]
Нужно учиться программировать профессионально , а абы как и дурак напишет
Потому и спрашиваю совета у тех кто разбирается
0
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
29.05.2020, 16:17  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
T-SQLВыделить код

CREATE TABLE HolidayCalendar
(
Date date NOT NULL,
isHoliday bit  NOT NULL
)

А зачем здесь поле isHoliday == какая у него функция?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
29.05.2020, 16:21
Цитата Сообщение от ivi Посмотреть сообщение
какая у него функция?
То ли выходной, то ли нет - это очевидно
0
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
29.05.2020, 17:23  [ТС]
Так тогда я не пойму зачем в таблицу календарь нужно вносить все дни месяца почему туда не внести только лишь одни выходные.


По заданию нужно найти выходгые:
Требуется автоматизировать процесс назначения автобусов автопарка на маршруты. В автопарке есть расписание по дням какой автобус на какой маршрут назначен. Определённые автобусы могут быть назначены только на определённые маршруты. Например, междугородные автобусы назначаются только на междугородные маршруты, двухсекционные автобусы на маршруты по большим улицам и т.п. Нарисовать схему БД и написать запрос на языке T-SQL, выводящий расписание для междугородных автобусов на выходные дни текущего месяца.

КАк я понимаю когда находится дата выходного она ищется в общей таблице всех маршрутов где написаны маршруты и в выходные дни и в будние и по дате идет фильтрация.

Не пойму зачем в таблицу Календарь заносить все дни не достаточно ли там одних выходных дней дат ? Или я чего то не понимаю
Миниатюры
Определение выходных дней недели  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18250 / 14174 / 5366
Регистрация: 17.03.2014
Сообщений: 28,851
Записей в блоге: 1
30.05.2020, 00:42
Лучший ответ Сообщение было отмечено ivi как решение

Решение

Цитата Сообщение от ivi Посмотреть сообщение
А зачем здесь поле isHoliday == какая у него функция?
Бывают рабочие дни которые могут быть выходными, а еще бывают выходные дни которые из-за переноса праздников являются рабочими. Для первы ставим IsHoliday=1, для вторых 0. То есть таблица содержит только дни исключения, а не весь календарь.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
30.05.2020, 11:50
Цитата Сообщение от ivi Посмотреть сообщение
написать запрос на языке T-SQL, выводящий расписание для междугородных автобусов на выходные дни текущего месяца.
да, это ты сделаешь. может быть, даже защитишь
однако страдания начнутся, когда будет запрос - дай мне расписание автобусов, которые ходят по чётным/нечётным дням недели
0
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
01.06.2020, 06:50  [ТС]
Ребята кто знает от 14 до 18 колонок производственного календаря что значат
0
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
01.06.2020, 14:48  [ТС]
Цитата Сообщение от ivi Посмотреть сообщение
Последний раз редактировалось OwenGlendower; Сегодня в 09:56. Причина: Загружайте картинки на форум, во избежание их удаления или потери на сторонних ресурсах
Как загрузить картинки на форум ?

Добавлено через 1 минуту
разобрался
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18250 / 14174 / 5366
Регистрация: 17.03.2014
Сообщений: 28,851
Записей в блоге: 1
01.06.2020, 23:56
Цитата Сообщение от ivi Посмотреть сообщение
разобрался
Как загружать файлы или с вопросом про колонки производственного календаря?
0
 Аватар для ivi
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 94
02.06.2020, 11:51  [ТС]
нет уже разобрался все сделал == спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2020, 11:51
Помогаю со студенческими работами здесь

Определение количества дней недели в году
Всем категорический привет и наилучшие пожелания в наступающем 2018!!! Имею вопрос: как определить количество дней недели...

Расчет выходных дней
Уважаемые форумчане, подскажите кто чем, как реализовать это в Access.Есть форма в ней 3 поля: поле1(начальная дата), поле2 (конечная...

Учет выходных дней при назначении задач
Такая ситуация - пользователь назначает в Аксе задачи другим, выбирая тип и сложность. В зависимости от выбранного типа и сложности в...

Выбор даты без учета выходных дней
Коллеги, доброго дня. Помогите допилить скрипт по выбору даты из таблицы. В наличие есть объект, в котором хранятся даты за 2 месяца. ...

Запрос подсчитывающий число дней между датами без выходных
Привет всем! Вот написал запрос на вычисление количества дней между датами, но он почему-то не выкидывает субботы и воскресенья....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru