|
Отделить время из одной тз в другой | ☑ | ||
---|---|---|---|---|
0
bebibo
10.01.23
✎
09:52
|
Всем доброго дня! Такая задача - показать в отчете часы, в которые в кабинете свободно.
Делаю отчет программно. На входе ТзГрафикРаботы и ТЗПациенты. ТзГрафикРаботы - график сотрудника в виде: Сотрудник1 | 10.01.2023 08:00:00 - 10.01.2023 10:00:00 Сотрудник1 | 10.01.2023 13:00:00 - 10.01.2023 20:00:00 ТЗПациенты- записанные люди в данный кабинет в виде: Пациент1| 10.01.2023 08:00:00 - 10.01.2023 08:20:00 Пациент2| 10.01.2023 08:20:00 - 10.01.2023 08:40:00 Такой вопрос как определить свободное рабочее время кабинета? Грубо говоря отсечь время второй таблицы из первой. Я делаю циклом сравнивая, но бывают запишутся например один пациент в 08.00 до 08.20, а второй не сразу после него, а например только в 10.00. И всё, мой алгоритм рушится..Подскажите кто как делал похожие задачи. |
|||
1
bebibo
10.01.23
✎
09:57
|
Пример:
ТзГрафикРаботы Сотрудник1 | 10.01.2023 08:00:00 - 10.01.2023 10:00:00 Сотрудник1 | 10.01.2023 13:00:00 - 10.01.2023 20:00:00 ТЗПациенты Пациент1| 10.01.2023 08:00:00 - 10.01.2023 08:20:00 Пациент2| 10.01.2023 08:20:00 - 10.01.2023 08:40:00 На выходе свободное время: 10.01.2023 08:40:00 - 10.01.2023 10:00:00 10.01.2023 13:00:00 - 10.01.2023 20:00:00 |
|||
2
DJ Anthon
10.01.23
✎
09:58
|
мы такую лабу на первом курсе в универе делали
|
|||
3
bebibo
10.01.23
✎
10:00
|
(2) Это кажется что так легко, что решить тут за 5 мин, но это не так.
|
|||
4
Галахад
гуру
10.01.23
✎
10:05
|
Напрашивается перевод в некие другие единицы:
08:00:00 - 1 08:10:00 - 2 08:20:00 - 3 ... |
|||
5
magicSan
10.01.23
✎
10:09
|
во время переводи и с ним работай
|
|||
6
Тихий омут
10.01.23
✎
10:12
|
(0) Поддержу (4) - квантуй время до каких-то разумных значений, 5-10-15 минут, и работай уже с такими единицами. Подкину ещё для размышлений, из собственного опыта автоматизации медицины - как будешь разруливать ситуации, когда пациент фактически задержался в кабинете на несколько минут после окончания работы врача по графику или после окончания приема по расписанию?
|
|||
7
bebibo
10.01.23
✎
10:16
|
Если с временем, то опять не для всех сотрудников подойдет данный алгоритм.
Например для такого случая не сработает: ТзГрафикРаботы Сотрудник1 | 10.01.2023 12:00:00 - 10.01.2023 14:00:00 Сотрудник1 | 10.01.2023 18:00:00 - 10.01.2023 20:00:00 ТЗПациенты Пациент1| 10.01.2023 13:00:00 - 10.01.2023 13:30:00 Пациент2| 10.01.2023 13:30:00 - 10.01.2023 14:00:00 Когда пациент не с самого начала записан как по графику. Мне нужно сравнивать время графика и время записи. В данном случае в графике во втором периоде с 18.00 никто не записан, то со второй таблице и делать ничего не надо. Берем просто период (вторую строку) из первой |
|||
8
bebibo
10.01.23
✎
10:16
|
(6) Такого у нас не будет к счастью ,это не фиксируется, даже если и будет
|
|||
9
Ryzeman
10.01.23
✎
10:18
|
(1) (3) Да не так уж сложно. То, что ты хочешь можно решать циклами, только не простым вычетанием, а рассматривать именно как отрезки со временем начала и временем конца, и если время прихода нового пациента не совпадает с текущим отрезком "свободного" времени, то отсекать отрезок и создавать новый. Добавлять строку в результирующую ТЗ.
Но результат тебя может не устроить, см (6), а так же насколько будут уместны например, десятки минутных отрезков? Опять де, если речь про планирование приёмов, а не про учёт реального времени, то самым годным решением будет квантовать время по 10 минут, например, и переводить его любым удобным способом. |
|||
10
magicSan
10.01.23
✎
10:39
|
тупой перебор интервала на проверку вхождения второй таблицы в первую.
|
|||
11
yopQua
10.01.23
✎
11:44
|
срезпоследних на каждую секунду/минуту как надо, потом сравнение с началом и концом по графику, вывод - занято или инет
|
|||
12
magicSan
10.01.23
✎
12:10
|
через запросы не выйдет, просто последовательно идешь по инетрвалам и смотришь конец интервала равен началу следующего? если нет то это наш
|
|||
13
DJ Anthon
10.01.23
✎
12:18
|
(3) а я не говорил, что это легко ) посмотри в типовых зупах, как реализованы периоды действия документов, которые перекрываются. там, правда, голову можно сломать на запросах по три тыщи строк...
|
|||
14
magicSan
10.01.23
✎
12:24
|
(13) кода на три тыщи а по сути все н арегистре расчета легко
|
|||
15
Dmitrii
гуру
10.01.23
✎
13:42
|
(14) >> все на регистре расчета легко.
Было бы легко, если бы у регистра расчета была периодичность "Минута". А у него минимальная периодичность "День". |
|||
16
yopQua
10.01.23
✎
14:27
|
в целом, не обязательно срез последних, нужна временная шкала за какой то интервал. Если до минуты, то
Период 10.01.23 11:00 .... 10.01.23 12:00 10.01.23 12:01 10.01.23 12:02 ... 10.01.23 13:00 10.01.23 13:01 10.01.23 13:02 Сначала надо получить такую таблицу, это основная "временная ось". Потом к ней со равнением на вхождение тянем левым это Сотрудник1 | 10.01.2023 12:00:00 (начало по графику) - 10.01.2023 14:00:00 (конец по графику) и если вхождение есть, типа Период >= НачалоПоГрафику И Период <= КонецПоГрафику Тогда занято, иначе свободно Как получить таблицу с основной осью - решайте сами, обычно производственный календарь берут, но там только дни, часов нет. В целом, никто не мешает сделать это циклом Время = НачалоДня(ТекущаяДата()); Пока Время <= КонецДня(ТекущаяДата()) Цикл Новая = ТЗВремени.Добавить(); Новая.Период = Время; Время = Время + 60; // до минуты будет КонецЦикла; и дальше запросами разруливаем. Сворачиваем до минуты, до часа, до дня как нужно так и соврачиваем. Будет Час(Период) Состояние 12 свободно 13 занято 14 занято все в общем то |
|||
17
yopQua
10.01.23
✎
14:28
|
че за картинки возле ника и почему у меня мешок?))
|
|||
18
Garykom
гуру
10.01.23
✎
14:54
|
(0) Преврати время в стандартные интервалы и сравнивай по ним
По примерам это 00, 20, 40 Т.е. 08:00, 08:20, 08:40, 09:00 и т.д. В самом хреновом случае будет вероятно по минутам И таблица работы сотрудников будет выглядеть: 08:00 08:01 08:02 ... 09:59 13:00 ... 19:59 |
|||
19
yopQua
10.01.23
✎
15:33
|
бобобо
|
|||
20
Said_We
10.01.23
✎
15:44
|
(18) Зачем такие сложности?
|
|||
21
Garykom
гуру
10.01.23
✎
15:58
|
(20) это не сложности а наоборот упрощение
и да иначе никак выше несколько постов о том же другими словами |
|||
22
yopQua
10.01.23
✎
16:07
|
бобобо слился, то есть тс, очень важный вопрос видимо
|
|||
23
Said_We
10.01.23
✎
16:26
|
(21) Выше увидел про регистр расчетов и это иначе. Даже если не использовать Регистр Расчетов, то можно сделать так же.
Фактически у вас плановое расписание, и фактическое его вытесняет. Там где не вытеснило, там свободные окна. |
|||
24
Said_We
10.01.23
✎
16:27
|
(17) Давай меняться. :-)
|
|||
25
Garykom
гуру
10.01.23
✎
16:30
|
(23) хрень там про регистр расчета
|
|||
26
Garykom
гуру
10.01.23
✎
16:34
|
У ТС изначально условие некорректно
"ТЗПациенты- записанные люди в данный кабинет в виде: Пациент1| 10.01.2023 08:00:00 - 10.01.2023 08:20:00 Пациент2| 10.01.2023 08:20:00 - 10.01.2023 08:40:00" пациенты пересекаются по времени на "10.01.2023 08:20:00" должно быть так Пациент1| 10.01.2023 08:00:00 - 10.01.2023 08:19:59 Пациент2| 10.01.2023 08:20:00 - 10.01.2023 08:40:00" |
|||
27
Said_We
10.01.23
✎
16:36
|
(25) Если аналог ЗиУП, то оклад это расписание работы врача, а отклонения - пусть БЛ раз про больницу :-).
Вводим плановые начисления врача и по этому же врачу вытесняем записанными номерками пациентов. (26) Это если до секунды. Получается одной корректировкой даты окончания - величина дискретизации, о которой тут решиться не могут, хотя это не принципиально. |
|||
28
Said_We
10.01.23
✎
16:42
|
(26) Опять же или так:
Пациент1| 10.01.2023 08:00:00 - 10.01.2023 08:20:00 Пациент2| 10.01.2023 08:20:01 - 10.01.2023 08:40:00 или так Пациент1| 10.01.2023 08:00:00 - 10.01.2023 08:19:00 Пациент2| 10.01.2023 08:20:00 - 10.01.2023 08:40:00 или ещё как.... Это второстепенный вопрос. |
|||
29
Garykom
гуру
10.01.23
✎
16:50
|
(28) Ну да
Один фиг нужна дискретизация и квантование А дальше все просто, переводим в эти кванты и работаем с ними |
|||
30
Said_We
10.01.23
✎
16:50
|
И да, задача решается SQL запросом.
Циклы и т.д. тут можно не использовать. Алгоритм не сложный. Разбиваешь на максимальное количество периодов по датам начала и окончания обоих таблиц. Строишь по полученной таблице таблицу периодов. К полученной таблице прицепляешь слева обе таблицы по периоду и кабинету (+врач если в одном кабинете несколько врачей или + процедура, если процедурный кабинет и т.д.) и определяешь, что было в каждом периоде. А вариантов там не много: ничего не было и кабинет не работает, только открытая работа кабинета без пациента, работа кабинета и занятая пациентом. |
|||
31
Said_We
10.01.23
✎
17:17
|
(29) На этапе определения периодов не нужна. Нужна только для конечного отображения. А до этого можно оставить как в (0) пусть даже с частичным пересечением одного момента. Это не принципиально.
|
|||
32
magicSan
10.01.23
✎
17:37
|
цикл по периодам
Если период1.кон < период2.нач тогда сзСвободно.добавить(период1.кон,период2.нач) конецЕсли конецЦилка это реально так сложно????? Как сравнить в значениями первой таблицы сам надеюсь догадаешся. |
|||
33
Garykom
гуру
10.01.23
✎
17:40
|
(32) ТС так и сделал
и напоролся что надо не одно условие делать а больше |
|||
34
magicSan
10.01.23
✎
17:42
|
(33) в моем алгоритме сразу видно свободный период а у него "один пациент в 08.00 до 08.20, а второй не сразу после него, а например только в 10.00. И всё, мой алгоритм рушится."
|
|||
35
Said_We
10.01.23
✎
19:54
|
Так что не сделали ещё? Или автору по фигу уже :-)
|
|||
36
Said_We
10.01.23
✎
20:36
|
WITH vt_gr as
(SELECT 1 as vrach, DATETIME('2023-01-10T08:00:00.000') as DateN, DATETIME('2023-01-10T10:00:00.000') as DateK UNION ALL SELECT 1, DATETIME('2023-01-10T13:00:00.000'), DATETIME('2023-01-10T20:00:00.000') UNION ALL SELECT 2, DATETIME('2023-01-10T10:00:00.000'), DATETIME('2023-01-10T15:00:00.000') UNION ALL SELECT 2, DATETIME('2023-01-10T17:00:00.000'), DATETIME('2023-01-10T20:00:00.000') ) , vt_bol as (SELECT 1 as bol, 1 as vrach, DATETIME('2023-01-10T08:00:00.000') as DateN, DATETIME('2023-01-10T08:20:00.000') as DateK UNION ALL SELECT 2, 1, DATETIME('2023-01-10T08:20:00.000'), DATETIME('2023-01-10T08:40:00.000') UNION ALL SELECT 3, 1, DATETIME('2023-01-10T09:20:00.000'), DATETIME('2023-01-10T09:40:00.000') UNION ALL SELECT 4, 1, DATETIME('2023-01-10T19:40:00.000'), DATETIME('2023-01-10T20:00:00.000') UNION ALL SELECT 1, 2, DATETIME('2023-01-10T11:20:00.000'), DATETIME('2023-01-10T11:40:00.000') UNION ALL SELECT 2, 2, DATETIME('2023-01-10T18:00:00.000'), DATETIME('2023-01-10T18:00:00.000') ) SELECT t1.* ,CASE WHEN t2.vrach is NULL THEN 'НЕ РАБОТАЕТ' WHEN t3.vrach is NULL THEN 'СВОБОДНО' else 'ЗАПИСАН ПАЦИЕНТ '||t3.bol END as status FROM (SELECT vrach ,DateX as DateN ,DATETIME(lead(DateX) OVER(PARTITION by vrach order by DateX), '-1 seconds') as DateK FROM (SELECT DISTINCT vrach ,DateX FROM (SELECT vrach, DateN as DateX from vt_gr UNION all SELECT vrach, DateK from vt_gr UNION all SELECT vrach, DateN from vt_bol UNION all SELECT vrach, DateK from vt_bol ) ) ) as t1 left JOIN vt_gr as t2 on t1.vrach = t2.vrach and (t1.DateK BETWEEN t2.DateN AND t2.DateK) left JOIN vt_bol as t3 on t1.vrach = t3.vrach and (t1.DateK BETWEEN t3.DateN AND t3.DateK) WHERE NOT t1.DateK is NULL vrach DateN DateK status 1 2023-01-10 08:00:00 2023-01-10 08:19:59 ЗАПИСАН ПАЦИЕНТ 1 1 2023-01-10 08:20:00 2023-01-10 08:39:59 ЗАПИСАН ПАЦИЕНТ 2 1 2023-01-10 08:40:00 2023-01-10 09:19:59 СВОБОДНО 1 2023-01-10 09:20:00 2023-01-10 09:39:59 ЗАПИСАН ПАЦИЕНТ 3 1 2023-01-10 09:40:00 2023-01-10 09:59:59 СВОБОДНО 1 2023-01-10 10:00:00 2023-01-10 12:59:59 НЕ РАБОТАЕТ 1 2023-01-10 13:00:00 2023-01-10 19:39:59 СВОБОДНО 1 2023-01-10 19:40:00 2023-01-10 19:59:59 ЗАПИСАН ПАЦИЕНТ 4 2 2023-01-10 10:00:00 2023-01-10 11:19:59 СВОБОДНО 2 2023-01-10 11:20:00 2023-01-10 11:39:59 ЗАПИСАН ПАЦИЕНТ 1 2 2023-01-10 11:40:00 2023-01-10 14:59:59 СВОБОДНО 2 2023-01-10 15:00:00 2023-01-10 16:59:59 НЕ РАБОТАЕТ 2 2023-01-10 17:00:00 2023-01-10 17:59:59 СВОБОДНО 2 2023-01-10 18:00:00 2023-01-10 19:59:59 СВОБОДНО |
|||
37
Said_We
10.01.23
✎
20:38
|
Данные от балды вводил - в том числе не верные. У второго врача второй пациент выпал.... :-) как в форточку :-)
|
|||
38
Said_We
11.01.23
✎
10:18
|
Автор таки пропал. :-)
|
|||
39
yopQua
11.01.23
✎
11:11
|
(38) к жирафу не ходи, так и есть
|
|||
40
Said_We
11.01.23
✎
13:19
|
(39) угу
|
|||
41
magicSan
11.01.23
✎
14:40
|
(36) ВЫБРАТЬ
1 КАК занят, 1 КАК врач, ДАТАВРЕМЯ(2023, 1, 10, 8, 0, 0) КАК периодНач, ДАТАВРЕМЯ(2023, 1, 10, 8, 20, 0) КАК периодКон ПОМЕСТИТЬ записи ОБЪЕДИНИТЬ ВЫБРАТЬ 2, 1, ДАТАВРЕМЯ(2023, 1, 10, 8, 20, 0), ДАТАВРЕМЯ(2023, 1, 10, 8, 40, 0) ОБЪЕДИНИТЬ ВЫБРАТЬ 3, 1, ДАТАВРЕМЯ(2023, 1, 10, 9, 20, 0), ДАТАВРЕМЯ(2023, 1, 10, 9, 40, 0) ОБЪЕДИНИТЬ ВЫБРАТЬ 4, 1, ДАТАВРЕМЯ(2023, 1, 10, 19, 40, 0), ДАТАВРЕМЯ(2023, 1, 10, 20, 0, 0) ОБЪЕДИНИТЬ ВЫБРАТЬ 1, 2, ДАТАВРЕМЯ(2023, 1, 10, 11, 20, 0), ДАТАВРЕМЯ(2023, 1, 10, 11, 40, 0) ОБЪЕДИНИТЬ ВЫБРАТЬ 2, 2, ДАТАВРЕМЯ(2023, 1, 10, 18, 0, 0), ДАТАВРЕМЯ(2023, 1, 10, 18, 0, 0) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 1 КАК врач, ДАТАВРЕМЯ(2023, 1, 10, 8, 0, 0) КАК периодВрачНач, ДАТАВРЕМЯ(2023, 1, 10, 10, 0, 0) КАК периодВрачКон ПОМЕСТИТЬ РежимРаботы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1, ДАТАВРЕМЯ(2023, 1, 10, 13, 0, 0), ДАТАВРЕМЯ(2023, 1, 10, 20, 0, 0) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2, ДАТАВРЕМЯ(2023, 1, 10, 10, 0, 0), ДАТАВРЕМЯ(2023, 1, 10, 15, 0, 0) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2, ДАТАВРЕМЯ(2023, 1, 10, 17, 0, 0), ДАТАВРЕМЯ(2023, 1, 10, 20, 0, 0) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ записи.периодКон КАК периодКон, записи1.периодНач КАК периодНач, записи.врач КАК врач ИЗ записи КАК записи ВНУТРЕННЕЕ СОЕДИНЕНИЕ записи КАК записи1 ПО (записи.периодКон < записи1.периодНач) И (записи.врач = записи1.врач) И (записи.занят + 1 = записи1.занят) |
|||
42
Said_We
11.01.23
✎
14:42
|
(3) "как будешь разруливать ситуации, когда пациент фактически задержался в кабинете на несколько минут после окончания работы врача по графику или после окончания приема по расписанию" - ничего он делать не будет. Это совсем другая задача. У него задача составить расписание. Показать где есть свободные окна для записи на прием. А отслеживание выполнение плана расписания на этапе планирования не производят. Пациенты вообще могут не придти. Это совсем другая задача.
Подобная задача решается в расписании например салонов красоты. Там ещё услуги разные и длительность из разная, поэтому никто не делит на некие равные отрезки времени, потому-что они не равные. Только укладка, укладка и стрижка, покраска со стрижкой и т.д. Часть услуг могут у клиентов частично пересекаться. Пока одна красится, второй делают укладку. |
|||
43
Said_We
11.01.23
✎
16:02
|
(41) Задание в (0) "как определить СВОБОДНОЕ рабочее время кабинета?".
|
|||
44
Said_We
11.01.23
✎
16:20
|
(41) Не совсем понял, что такое "записи.занят + 1 = записи1.занят". По всей видимости "занят" это порядковый номер пациента. По факту запрос в (41) для каждого пациента пытается определить следующего.
Потом перепутаны: даты начала и конца. записи.периодКон КАК периодКон, записи1.периодНач КАК периодНач, Если три пациента подряд, то не понятно что получится. И самое главное не понятно когда будет анализироваться таблица РежимРаботы. Создается таблица из которой необходимо вычитать периоды, которые уже в расписании заняты и не делается ничего. Просто создали и забыли. |
|||
45
Said_We
11.01.23
✎
17:02
|
(41) На мой взгляд этот запрос не решает задачу.
|
|||
46
Garykom
гуру
11.01.23
✎
17:06
|
(44) Пациенты могут быть записаны на одно и тоже время
Это нормальная ситуация и код должен это грамотно разрулить |
|||
47
Said_We
11.01.23
✎
17:13
|
(46) В запросе (41) не используется график работы врача. Следовательно нельзя определить свободное время.
Запрос в (36) думаю "разрулит" двух пациентов на одно и то же время. Если время пациентов будет частично пересекаться, то по два раза покажет. "Это нормальная ситуация" - думаю это не нормальная ситуация. Приходишь, а на твое время ещё 100 человек записаны. И перед тобой так же. Попробуй так сделать с салоне красоты - это потеря клиентов. А в поликлинике получится - что врач вешается. А почему - потому что в работает за себя и за ту мертвую душу, за которую часть зарплаты получает главврач. :-) |
|||
48
Said_We
11.01.23
✎
17:17
|
(46) Если мы говорим про физиокабинеты, то там талончик выписывается не к врачу, а к прибору, который осуществляет физиопроцедуру.
Т.е. разрез это не врач, а иногда врач, а иногда прибор (МРТ, КТ, магниты, Кукушка, УЗИ, ЭКГ и т.д). |
|||
49
magicSan
11.01.23
✎
19:50
|
(44) Это порядковый номер записи - они идут друг за другом в независимости от перервыв внутри. В первых строках уже писал что нужно два упорядоченных списка.
|
|||
50
magicSan
11.01.23
✎
19:51
|
(46) нет не нормальная грамотно разрулить должен ввод данных
|
|||
51
magicSan
11.01.23
✎
19:57
|
(47) мне лень было дописывать врача это тривиально.
А вообще есть решение "в лоб", думаю все умеют генерировать даты в запросе, генерируешь список дат любого размера и точности - это моменты времени. Далее проверяешь вхождение момента в период врачей на вход и период пациента не входит, получаешь список свободных моментов любой точности. |
|||
52
Said_We
11.01.23
✎
20:15
|
(51) В запросе в (36) ничего не генерируется, кроме входных данных. Продолжительность у приемов может быть разная.
И самое главное. В задаче (0) необходимо определить свободные промежутки, а не занятые. В (41) об этом ничего даже близко нет. |
|||
53
Тихий омут
12.01.23
✎
03:42
|
(42) Скушай ещё этих французских булочек и выпей чаю:))) Спокуха, бро, это всего лишь предложение подумать о будущем, так сказать, задачка со звёздочкой, опыт и предвосхищение грядущего. Накувыркался в своё время с автоматизацией частного многофункционального медцентра, руководству только во вкус надо войти, и такие вопросы непременно будут. А так да, в текущей задаче этого нет.
|
|||
54
Тихий омут
12.01.23
✎
03:47
|
(42) Так сказать, предложение подумать о чуть более широком толковании задачи с целью заложить архитектуру, с большей свободой манёвра в дальнейшем, чтобы не было мучительно больно переделывать как код, формирующий непосредственно отображение расписания, так подход к организации хранения всех связанных данных.
(26) Пришёл в конце концов к выводу, что не нужно делать секундные "зазоры" между окончанием одного интервала и началом другого. Даже чисто математически всё получается строго и красиво, нужно только посидеть и подумать. Возможно, кому-то не один день, как и мне:) |
|||
55
magicSan
12.01.23
✎
06:55
|
(52) просто скопируй код в консоль может чего поймешь. Я так то исходные данные копировал с запроса из (36) но ты настока глуп что не понимаешь этого
|
|||
56
Said_We
12.01.23
✎
10:44
|
(55)
ИЗ записи КАК записи ВНУТРЕННЕЕ СОЕДИНЕНИЕ записи КАК записи1 где обращение к ПОМЕСТИТЬ РежимРаботы Хреново ты скопипастил :-) |
|||
57
Said_We
12.01.23
✎
10:46
|
(55) Соединение зачем-то "ВНУТРЕННЕЕ СОЕДИНЕНИЕ"
Для последней записи нет следующей и ты её просто выкидываешь. |
|||
58
magicSan
12.01.23
✎
12:27
|
(57) я же сказал что леньписать на сверку с временем рабоыт врачей, могу дописать, у них ведь обед может быть
|
|||
59
Said_We
12.01.23
✎
12:34
|
(58) Задам вопрос прямо. Что запрос в (41) возвращает, а точнее должен возвращать?
Если заглянешь в данные, то обед у врачей я ввел - не поленился. :-) |
|||
60
magicSan
12.01.23
✎
13:06
|
(59) свободные периоды между пациентами
|
|||
61
Said_We
12.01.23
✎
14:44
|
(60) Так задача была другая. Задача была определить не занятые периоды работы врача.
|
|||
62
Ryzeman
12.01.23
✎
14:47
|
ТС свалил в закат ещё 2 дня назад, а вы тут продолжаете жаркие споры)
|
|||
63
Said_We
12.01.23
✎
15:11
|
(62) Да не. Я просто логику magicSan хочу понять.
В задаче и в заголовке сказано отделить одну ТЗ от другой ТЗ. magicSan берет одну из таблиц саму с собой крутит и говорит - готово. Вторую совсем не анализирует - говорит - лень. Если лень, то зачем писать? Благо, автор ветки ушёл и его эта, не сильно ему нужная, а скорее вредная информация, с панталыку не собьёт. :-) (60) А если есть пустое время после или перед пациентом, то про это время необходимо забыть? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |