1С: как сравнить в запросе тек элемент с предыдущим, необходимо написать запрос который посчитает разницу между днями рождениями из регистра сведен
ДеньРождение КАК СледующийДеньРождения, РАЗНОСТЬДАТ(ДеньРождение, СледующийДеньРождения, ДЕНЬ) КАК КоличествоДней
Ответы (1 шт):
Как я понял из коммента в
регистре 2 измерения* ФИО, ДатаРождения и необходимо найти разницу в днях рождения.
Эта задача довольно сложная для начинающего ... Вам необходимо к первой таблице Т1(РегистрСведений) выполнить ЛЕВОЕ СОЕДИНЕНИЕ ПО Т1.ДеньРождения <= Т2.ДеньРождения где Т2(тот же РегистрСведений) и вычислить разность дат (Т2.ДеньРождения - Т1.ДеньРождения) взять от нее МИНИМУМ()
ВЫБРАТЬ Т1.ФИО, Т1.ДеньРождения, МИНИМУМ(Т2.ДеньРождения - Т1.ДеньРождения)
ИЗ НашРегистрСведений КАК Т1
ЛЕВОЕ СОЕДИНЕНИЕ НашРегистрСведений КАК Т2
ПО Т1.ДеньРождения <= Т2.ДеньРождения
СГРУППИРОВАТЬ ПО Т1.ФИО, Т1.ДеньРождения
Следует учитывать случай когда после Т1.ДеньРождения уже нет данных; Тогда необходимо учесть это при вычислении разности
МИНИМУМ(
ВЫБОР КОГДА Т2.ДеньРождения ЕСТЬ NULL ТОГДА 999999
ИНАЧЕ Т2.ДеньРождения - Т1.ДеньРождения
КОНЕЦ)
Ну и наконец при выводе отчета 999999 заменять на " "