|
Работа с днями рождения | ☑ | ||
---|---|---|---|---|
0
red_F
naïve
24.06.24
✎
14:30
|
Ребят не могу понять, как решить задачу, подскажите плиз.
1) В конфигурации создать непериодический регистр сведений «ДниРождения» с измерениями: «ФИО» (Строка(100)), «ДеньРождение» (Дата). 2) Написать запрос который посчитает разницу между днями рождениями. Пример: В регистр занесены следующие данные: ФИО ДеньРождение Иванов Иван Иванович 23.11.1989 Петров Петр Петрович 23.02.2000 Михайлов Михаил Михайлович 01.10.1990 Результат запроса должен выглядеть следующим образом: ФИО ДеньРождение СледующийДеньРождения КоличествоДней Петров Петр Петрович 23.02.2000 01.10.1990 221 Михайлов Михаил Михайлович 01.10.1990 23.11.1989 53 Иванов Иван Иванович 23.11.1989 23.02.2000 92 |
|||
1
Волшебник
24.06.24
✎
14:33
|
ДеньРождение — ошибка в названии. Правильно ДеньРождения
И лучше это сделать ресурсом, а не измерением |
|||
2
red_F
naïve
24.06.24
✎
14:35
|
Ошибку видел, задание именно такое, изменять нельзя, нужно построить запрос
|
|||
3
Смотрящий
24.06.24
✎
14:36
|
(2) Как пробовал, что получилось ?
|
|||
4
Волшебник
24.06.24
✎
14:38
|
(2) Вам нельзя, а нам можно. Вам нужно, а нам не нужно.
|
|||
5
red_F
naïve
24.06.24
✎
14:40
|
Запрос всех данных, вложенный запрос на все данные.
Вычисляемое поле в первой таблице, в котором отнимаю от каждого поля из вложенного запроса имеющуюся дату(точнее ДЕНЬГОДА для даты). Но не знаю как взять только минимальный результат при вычислении разности |
|||
6
Волшебник
24.06.24
✎
14:41
|
(5) Вы не описывайте, Вы показывайте.
|
|||
7
Смотрящий
24.06.24
✎
14:42
|
(5) Листинг запроса сюда вывали
|
|||
8
red_F
naïve
24.06.24
✎
14:47
|
Запрос.Текст = "ВЫБРАТЬ
| ДниРождения.ФИО КАК ФИО, | ДниРождения.ДеньРождения КАК ДеньРождения, | ВЫБОР | КОГДА ДЕНЬГОДА(ВложенныйЗапрос.ДеньРождения) - ДЕНЬГОДА(ДниРождения.ДеньРождения) > 0 | ТОГДА ВложенныйЗапрос.ДеньРождения | КОНЕЦ КАК СледующийДеньРождения |ИЗ | РегистрСведений.ДниРождения КАК ДниРождения, | (ВЫБРАТЬ | ДниРождения.ФИО КАК ФИО, | ДниРождения.ДеньРождения КАК ДеньРождения | ИЗ | РегистрСведений.ДниРождения КАК ДниРождения) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ДниРождения.ФИО, | ДниРождения.ДеньРождения, | ВЫБОР | КОГДА ДЕНЬГОДА(ВложенныйЗапрос.ДеньРождения) - ДЕНЬГОДА(ДниРождения.ДеньРождения) > 0 | ТОГДА ВложенныйЗапрос.ДеньРождения | КОНЕЦ" ; |
|||
9
Волшебник
24.06.24
✎
14:48
|
(8) Декартово произведение — фу-фу-фу 👎
|
|||
10
red_F
naïve
24.06.24
✎
14:48
|
понятно, что это не все решение, не понимаю, как взять минимальное
|
|||
11
red_F
naïve
24.06.24
✎
14:49
|
Сорян, я учусь)))
|
|||
12
Волшебник
24.06.24
✎
14:50
|
Лучше замутите цикл
|
|||
13
red_F
naïve
24.06.24
✎
14:51
|
(12) В запросе?
|
|||
14
Ёпрст
24.06.24
✎
14:51
|
(0)
>>>день рождения 23.02.2000 следующий 01.10.1990 ?! Это как с февраля в октябрь, с 2000 назад в 1990 ? |
|||
15
Волшебник
24.06.24
✎
14:53
|
(13) После запроса
|
|||
16
red_F
naïve
24.06.24
✎
14:54
|
учитывается только месяц и день. год не учитывается + для самой поздней даты в году следующим ДР будет самая ранняя дата
|
|||
17
red_F
naïve
24.06.24
✎
14:57
|
(15) Типа запросом просто забрать все данные, а дальше просто обработать в процедуре и заполнить ячейки таблицы?
|
|||
18
Волшебник
24.06.24
✎
14:57
|
(17) Конечно
|
|||
19
red_F
naïve
24.06.24
✎
14:58
|
но блин, написано же юзать именно запрос
|
|||
20
Волшебник
24.06.24
✎
14:58
|
(19) Это Вам написано, а не нам. Читайте (4)
|
|||
21
red_F
naïve
24.06.24
✎
14:59
|
может подскажет кто, хотя бы как минимум заюзать, чтоб в таблицу попадала только меньшее из разности?
|
|||
22
unenu
24.06.24
✎
14:59
|
В Первый пакет запроса поместить ВТ
и добавить поле АВТОНОМЕРЗАПИСИ() КАК Номер во втором пакете соединяете ВТ саму с собой и разность дат Т1 и Т2 где Т1.Номер = Т2.Номер - 1 |
|||
23
red_F
naïve
24.06.24
✎
15:00
|
(20) Да я понимаю) но помощь я ищу именно в том, что написано)
|
|||
24
red_F
naïve
24.06.24
✎
15:02
|
(22) А Сортировку не нужно перед этим применить?
|
|||
25
unenu
24.06.24
✎
15:05
|
(22) это запрос для последовательного ряда, т.е. чтобы видеть сколько дней до следующего.
Для вычисления всех разностей я бы тоже использовал ВТ с нумерацией, а то всякие тезки сломают логику. |
|||
26
unenu
24.06.24
✎
15:08
|
(24) Индексировать по ДатаРождения, Фио. Не наоборот.
Или сортировать во вложенном с ПЕРВЫЕ 100500 (очень большое число) |
|||
27
red_F
naïve
24.06.24
✎
15:12
|
Если честно, то не совсем понимаю, как это все сделать (26)
|
|||
28
unbred
24.06.24
✎
15:17
|
РазностьДат юзай(ДатаВремя(&ТекДата, День), ДатаВремя(ДниРождения.ДеньРождения, День)). без всяких вложенных.
наркоманы. |
|||
29
Ёпрст
24.06.24
✎
15:17
|
(21) разность как в (0) тебе не поможет, ибо для ноября нет ничего по условию >0 в разности твоей.
|
|||
30
red_F
naïve
24.06.24
✎
15:23
|
ДАТАВРЕМЯ не хочет принимать ДЕНЬ(ДниРождения.ДеньРождения)
Можно подробнее? |
|||
31
Мультук
гуру
24.06.24
✎
15:33
|
(30)
Ой, сорри. Прочитал еще раз условие запроса. |
|||
32
unbred
24.06.24
✎
15:30
|
(30) да я кривенько написал (на память). почитай про разность дат.
|
|||
33
Ёпрст
24.06.24
✎
15:35
|
(30) На вот, занимайся, дальше сам
ВЫБРАТЬ ДАТАВРЕМЯ(1989, 11, 23) КАК ДеньРождения, "Иван" КАК ФИО ПОМЕСТИТЬ Табличка ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2000, 2, 23), "Петр" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(1990, 10, 1), "Михаил" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Табличка2.ФИО КАК ФИО, МИНИМУМ(ВЫБОР КОГДА ДЕНЬГОДА(Табличка.ДеньРождения) - ДЕНЬГОДА(Табличка2.ДеньРождения) > 0 ТОГДА ДЕНЬГОДА(Табличка.ДеньРождения) - ДЕНЬГОДА(Табличка2.ДеньРождения) ИНАЧЕ ДЕНЬГОДА(Табличка.ДеньРождения) - ДЕНЬГОДА(Табличка2.ДеньРождения) + 365 КОНЕЦ) КАК РазницаДат ИЗ Табличка КАК Табличка ЛЕВОЕ СОЕДИНЕНИЕ Табличка КАК Табличка2 ПО Табличка2.ФИО <> Табличка.ФИО СГРУППИРОВАТЬ ПО Табличка2.ФИО ЗЫ: поправил, мало ли, др разных товарищей в один день |
|||
34
unbred
24.06.24
✎
15:36
|
(33) жесть)
|
|||
35
Ёпрст
24.06.24
✎
15:38
|
(34) обоснуй
|
|||
36
unbred
24.06.24
✎
15:38
|
(33) мне как-то так видится..
ВЫБРАТЬ ДниРождения.ФИО КАК ФИО, ДниРождения.ДеньРождения КАК ДР, &ТекДата КАК ТекДата ИЗ РегистрСведений.ДниРождения КАК ДниРождения ПОМЕСТИТЬ ВТ_ДР ; //// ВЫБРАТЬ ВТ_ДР.ФИО КАК ФИО, ВТ_ДР.ДР КАК ДР, РАЗНОСТЬДАТ(ВТ_ДР.ТекДата, ВТ_ДР.ДР, ДЕНЬ) КАК Дельта ИЗ ВТ_Даты КАК ВТ_Даты |
|||
37
unbred
24.06.24
✎
15:39
|
(36) (не проверял)
|
|||
38
Ёпрст
24.06.24
✎
15:41
|
(37) ага, и задание тоже не прочитал, бывает
|
|||
39
unbred
24.06.24
✎
15:43
|
(38) ага, не вникал, каюсь) там два пункта, их прочитал)
|
|||
40
unenu
24.06.24
✎
15:48
|
ВЫБРАТЬ "Иванов Иван Иванович" КАК ФИО, ДАТАВРЕМЯ(1989, 11, 23) КАК ДР ПОМЕСТИТЬ ВТНабор ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Петров Петр Петрович", ДАТАВРЕМЯ(2000, 2, 23) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Михайлов Михаил Михайлович", ДАТАВРЕМЯ(1990, 1, 10) ИНДЕКСИРОВАТЬ ПО ДР, ФИО ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ АВТОНОМЕРЗАПИСИ() КАК N, ВТНабор.ФИО КАК ФИО, ВТНабор.ДР КАК ДР ПОМЕСТИТЬ ВтНаборНумерованный ИЗ ВТНабор КАК ВТНабор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Т1.N КАК N_Тек, Т1.ФИО КАК ФИО_Тек, Т1.ДР КАК ДР_Тек, Т2.N КАК N_Слд, Т2.ФИО КАК ФИО_Слд, Т2.ДР КАК ДР_Слд, РАЗНОСТЬДАТ(Т1.ДР, Т2.ДР, ДЕНЬ) КАК Дней ИЗ ВтНаборНумерованный КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ ВтНаборНумерованный КАК Т2 ПО (Т1.N = Т2.N - 1) |
|||
41
red_F
naïve
24.06.24
✎
15:52
|
(33) первый запрос - это временная таблица?
|
|||
42
Ёпрст
24.06.24
✎
15:54
|
(40) И ? ..результат-то не тот что нужен.
Да и индексировать там не надо |
|||
43
Смотрящий
24.06.24
✎
15:54
|
ВЫБРАТЬ
ДниРождения.ФИО КАК ФИО, ДниРождения.ДатаРождения КАК ДатаРождения, ДОБАВИТЬКДАТЕ(ДниРождения.ДатаРождения, ГОД, РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &ТекущаяДатаВремя, ГОД)) КАК ДатаРожденияЭтотГод ПОМЕСТИТЬ втДанныеПромежуточные ИЗ РегистрСведений.ДниРождения КАК ДниРождения ; ВЫБРАТЬ втДанныеПромежуточные.ФИО, втДанныеПромежуточные.ДатаРождения, ВЫБОР КОГДА &ТекущаяДатаВремя < втДанныеПромежуточные.ДатаРожденияЭтотГод ТОГДА втДанныеПромежуточные.ДатаРожденияЭтотГод ИНАЧЕ ДОБАВИТЬКДАТЕ(втДанныеПромежуточные.ДатаРожденияЭтотГод, ГОД, 1) КОНЕЦ КАК ДатаРожденияСледующая ПОМЕСТИТЬ втДанные ИЗ втДанныеПромежуточные КАК втДанныеПромежуточные ; ВЫБРАТЬ втДанные.ФИО, втДанные.ДатаРождения, втДанные.ДатаРожденияСледующая, РАЗНОСТЬДАТ(&ТекущаяДатаВремя, втДанные.ДатаРожденияСледующая, ДЕНЬ) КАК КоличествоДней ИЗ втДанные КАК втДанные |
|||
44
Смотрящий
24.06.24
✎
15:55
|
В ТекущаяДатаВремя = ТекущаяДата(), ну или дата от которой считаться
|
|||
45
Ёпрст
24.06.24
✎
15:56
|
(41) это пример из твоих данных из (0)
Можешь первый запрос заменить данными из своего РС. Тебе останется только получить потом дату следующего рождения. Самостоятельно. |
|||
46
Волшебник
24.06.24
✎
15:56
|
(45) >> дату следующего рождения
Звучит! |
|||
47
unenu
24.06.24
✎
16:00
|
(42) а так
ВЫБРАТЬ "Иванов Иван Иванович" КАК ФИО, ДАТАВРЕМЯ(1989, 11, 23) КАК ДР ПОМЕСТИТЬ ВТНабор ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Петров Петр Петрович", ДАТАВРЕМЯ(2000, 2, 23) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Михайлов Михаил Михайлович", ДАТАВРЕМЯ(1990, 1, 10) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ АВТОНОМЕРЗАПИСИ() КАК N, Т.ФИО КАК ФИО, Т.ДР КАК ДР ПОМЕСТИТЬ ВтНаборНумерованный ИЗ (ВЫБРАТЬ ПЕРВЫЕ 100000000 ВТНабор.ФИО КАК ФИО, ВТНабор.ДР КАК ДР ИЗ ВТНабор КАК ВТНабор УПОРЯДОЧИТЬ ПО ДР УБЫВ) КАК Т ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Т1.N КАК N_Тек, Т1.ФИО КАК ФИО_Тек, Т1.ДР КАК ДР_Тек, Т2.N КАК N_Слд, Т2.ФИО КАК ФИО_Слд, Т2.ДР КАК ДР_Слд, РАЗНОСТЬДАТ(Т2.ДР, Т1.ДР, ДЕНЬ) КАК Дней ИЗ ВтНаборНумерованный КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ ВтНаборНумерованный КАК Т2 ПО (Т1.N = Т2.N - 1) |
|||
48
unenu
24.06.24
✎
16:02
|
(42) Индексация чтобы не сортировать. При индексации даты рождения от меньшей к большей. Если нужен обратный порядок, то только сортировка как в последнем запросе.
|
|||
49
red_F
naïve
24.06.24
✎
16:10
|
(43) Следующий день рождения имеется ввиду не след день рождения человека, а как бы следующий ДР в году из представленных людей
|
|||
50
Волшебник
24.06.24
✎
16:25
|
(49) Группируйте по интервалам, а то замучаетесь. Например,
в июне родились: 1. 2. 3. Поздравляем! |
|||
51
2S
24.06.24
✎
16:27
|
|
|||
52
Ёпрст
24.06.24
✎
16:28
|
Утомил..
На вот, занимайся. Бегом за пятёркой! ВЫБРАТЬ ДАТАВРЕМЯ(1989, 11, 23) КАК ДеньРождения, "Иван" КАК ФИО ПОМЕСТИТЬ Табличка ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2000, 2, 23), "Петр" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(1990, 10, 1), "Михаил" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Табличка2.ФИО КАК ФИО, Табличка.ДеньРождения КАК ДеньРожденияСледующий, Табличка2.ДеньРождения КАК ДеньРождения, ВЫБОР КОГДА ДЕНЬГОДА(Табличка.ДеньРождения) - ДЕНЬГОДА(Табличка2.ДеньРождения) > 0 ТОГДА ДЕНЬГОДА(Табличка.ДеньРождения) - ДЕНЬГОДА(Табличка2.ДеньРождения) ИНАЧЕ ДЕНЬГОДА(Табличка.ДеньРождения) - ДЕНЬГОДА(Табличка2.ДеньРождения) + 365 КОНЕЦ КАК РазницаДат ПОМЕСТИТЬ ТабличкаРазности ИЗ Табличка КАК Табличка ЛЕВОЕ СОЕДИНЕНИЕ Табличка КАК Табличка2 ПО (Табличка2.ФИО <> Табличка.ФИО) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Табличка2.ФИО КАК ФИО, Табличка2.ДеньРождения КАК ДеньРождения, Табличка2.РазницаДат КАК РазницаДат, ТабличкаРазности.ДеньРожденияСледующий КАК ДеньРожденияСледующий ИЗ (ВЫБРАТЬ ТабличкаРазности.ФИО КАК ФИО, ТабличкаРазности.ДеньРождения КАК ДеньРождения, МИНИМУМ(ТабличкаРазности.РазницаДат) КАК РазницаДат ИЗ ТабличкаРазности КАК ТабличкаРазности СГРУППИРОВАТЬ ПО ТабличкаРазности.ФИО, ТабличкаРазности.ДеньРождения) КАК Табличка2 ЛЕВОЕ СОЕДИНЕНИЕ ТабличкаРазности КАК ТабличкаРазности ПО (ТабличкаРазности.РазницаДат = Табличка2.РазницаДат) |
|||
53
Eiffil123
24.06.24
✎
17:39
|
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(ДниРождений.ДеньРождения, ГОД, 2000 - ГОД(ДниРождений.ДеньРождения)) КАК ПриведеннаяДатаРождения, МИНИМУМ(ДниРождений.ДеньРождения) КАК ДатаРождения ПОМЕСТИТЬ ВТ_ПриведенныеДниРождений ИЗ РегистрСведений.ДниРождений КАК ДниРождений СГРУППИРОВАТЬ ПО ДОБАВИТЬКДАТЕ(ДниРождений.ДеньРождения, ГОД, 2000 - ГОД(ДниРождений.ДеньРождения)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МИНИМУМ(ВТ_ПриведенныеДниРождений.ПриведеннаяДатаРождения) КАК ПриведеннаяДатаРождения ПОМЕСТИТЬ ВТ_ПриведеннаяПерваяДата ИЗ ВТ_ПриведенныеДниРождений КАК ВТ_ПриведенныеДниРождений ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Т1.ПриведеннаяДатаРождения КАК ПриведенноеДР, МИНИМУМ(Т2.ПриведеннаяДатаРождения) КАК ПриведенноеДРСледующее ПОМЕСТИТЬ ВТ_ПриведенныеСледующиеДРПромежуточная ИЗ ВТ_ПриведенныеДниРождений КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПриведенныеДниРождений КАК Т2 ПО Т1.ПриведеннаяДатаРождения < Т2.ПриведеннаяДатаРождения СГРУППИРОВАТЬ ПО Т1.ПриведеннаяДатаРождения ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ПриведенныеСледующиеДРПромежуточная.ПриведенноеДР КАК ПриведенноеДР, ЕСТЬNULL(ВТ_ПриведенныеСледующиеДРПромежуточная.ПриведенноеДРСледующее, ВТ_ПриведеннаяПерваяДата.ПриведеннаяДатаРождения) КАК ПриведенноеДРСледующее, ВЫБОР КОГДА ВТ_ПриведенныеСледующиеДРПромежуточная.ПриведенноеДРСледующее ЕСТЬ NULL ТОГДА РАЗНОСТЬДАТ(ВТ_ПриведенныеСледующиеДРПромежуточная.ПриведенноеДР, ДОБАВИТЬКДАТЕ(ВТ_ПриведеннаяПерваяДата.ПриведеннаяДатаРождения, ГОД, 1), ДЕНЬ) ИНАЧЕ РАЗНОСТЬДАТ(ВТ_ПриведенныеСледующиеДРПромежуточная.ПриведенноеДР, ВТ_ПриведенныеСледующиеДРПромежуточная.ПриведенноеДРСледующее, ДЕНЬ) КОНЕЦ КАК РазностьДат ПОМЕСТИТЬ ВТ_ПриведенныеСледующиеДР ИЗ ВТ_ПриведенныеСледующиеДРПромежуточная КАК ВТ_ПриведенныеСледующиеДРПромежуточная ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПриведеннаяПерваяДата КАК ВТ_ПриведеннаяПерваяДата ПО (ИСТИНА) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДниРождений.ФизЛицо КАК ФизЛицо, ДниРождений.ДеньРождения КАК ДеньРождения, ВТ_ПриведенныеДниРождений.ДатаРождения КАК ДеньРожденияСледующий, ВТ_ПриведенныеСледующиеДР.РазностьДат КАК КоличествоДней ИЗ РегистрСведений.ДниРождений КАК ДниРождений ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПриведенныеСледующиеДР КАК ВТ_ПриведенныеСледующиеДР ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПриведенныеДниРождений КАК ВТ_ПриведенныеДниРождений ПО ВТ_ПриведенныеСледующиеДР.ПриведенноеДРСледующее = ВТ_ПриведенныеДниРождений.ПриведеннаяДатаРождения ПО (ДОБАВИТЬКДАТЕ(ДниРождений.ДеньРождения, ГОД, 2000 - ГОД(ДниРождений.ДеньРождения)) = ВТ_ПриведенныеСледующиеДР.ПриведенноеДР) УПОРЯДОЧИТЬ ПО ВТ_ПриведенныеСледующиеДР.ПриведенноеДР |
|||
54
Eiffil123
24.06.24
✎
17:40
|
но вообще эта задача уже была разобрана тут: https://t.me/sobes_1c/10747
|
|||
55
red_F
naïve
24.06.24
✎
17:53
|
(54) Спасибо)
|
|||
56
red_F
naïve
24.06.24
✎
17:53
|
(52) Да дело не в пятерке)) еще разобраться нужно
|
|||
57
red_F
naïve
24.06.24
✎
17:54
|
Ребят, всем СПАСИБО!!!
|
|||
59
Гена
гуру
24.06.24
✎
18:49
|
(58) Когда следующий "банкет". Работал я как-то в дирекции, где было человек 10. Так вот там исстари было принято на ДР накрывать стол с обеда. Данная задачка как раз и показывает, сколько дней до гулянки )
|
|||
60
Волшебник
24.06.24
✎
19:08
|
(59) дурдом, чё
|
|||
61
DJ Anthon
25.06.24
✎
05:46
|
я бы выбрал просто два раза из одного регистра в одну таблицу, но во второй выборке добавил нулевого пациента, получился бы элементарный сдвиг между фио, вот вам и разница дат.
|
|||
62
Мимохожий Однако
25.06.24
✎
07:05
|
(0) Строка с примером по Петрову мне не понятна. Почему сравнение идёт по Михайлову?!
|
|||
63
maxab72
25.06.24
✎
07:36
|
(59) а я работал в институте, где было принято отмечать только дни рождения кратные 5. Причем отмечали в последний рабочий день квартала, квартальные юбиляры скидывались и накрывали общую поляну на всех. "В каждой избушке свои погремушки..."
|
|||
64
Гена
гуру
25.06.24
✎
07:36
|
(62) На год не смотрите, Мих (01.10) ближайший ДР к Петр (23.02) на стреле времени.
|
|||
65
Гена
гуру
25.06.24
✎
07:53
|
Я бы лично добавил в измерение/ресурс/реквизит целочисленный номер в 5 цифр:
ММДДN месяц + день + номер для отслеживания родившихся в один день Тогда в любой день можно отсортировать от него по возрастанию. Сегодня 25.06.2024 Сортировка (всем мЕньшим прибавляем +12): 0625 ТекДата 10011 Михайлов 11231 Иванов 14231 Петров (0223 < 0625 => 1423) |
|||
66
Волшебник
25.06.24
✎
09:11
|
(65) Это не реквизит, а вычисляемое поле от даты. Можно сделать запрос, потом циклом обработать результат, потом загнать во временную таблицу и сделать следующий запрос.
|
|||
67
Гена
гуру
25.06.24
✎
10:05
|
(66) Вам виднее.
Визуально перед глазами кольцо с рисками ММДД. От текущей даты бежим по часовой стрелке ) |
|||
68
Волшебник
25.06.24
✎
10:24
|
(67) Линейно-кольцевое мышление детектед. Здесь лучше оперировать множествами и диаграммами Эйлера — Венна.
|
|||
69
Мимохожий Однако
26.06.24
✎
09:55
|
(64) Если не учитывать год рождения, то достаточно использовать день года
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |