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


Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот