Дубли по 4 полям с исключающим условием.

1. aalu14 21.11.23 13:00 Сейчас в теме
Всем привет! Необходимо получить выборку документов, у которых одинаковое фио и др, но разный адрес прописки. При этом среди дублей хотя бы один документ должен иметь дату в выбранном периоде. (+ условие по реквизиту "статус"). Пытаюсь сначала найти дубли, а потом уже среди них ищу документы с разными адресами.
Подскажите, оптимальное ли решение ? И подскажите, как к этому "прикрутить" условие с датой создания в выбранном периоде.

ВЫБРАТЬ
	Анкета.ЗаявкаИмя,
	Анкета.ЗаявкаФамилия,
	Анкета.ДатаРождения,
	Анкета.ЗаявкаОтчество,
	КОЛИЧЕСТВО(*) КАК Сч
ПОМЕСТИТЬ втДубли
ИЗ
	Документ.Анкета КАК Анкета
ГДЕ
	Анкета.СтатусАнкеты.Наименование = "Установлен лимит"

СГРУППИРОВАТЬ ПО
	Анкета.ЗаявкаИмя,
	Анкета.ЗаявкаФамилия,
	Анкета.ДатаРождения,
	Анкета.ЗаявкаОтчество

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(*) > 1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Анкета.Ссылка
ПОМЕСТИТЬ ВтАН
ИЗ
	втДубли КАК втДубли
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Анкета КАК Анкета
		ПО втДубли.ЗаявкаИмя = Анкета.ЗаявкаИмя
			И втДубли.ЗаявкаФамилия = Анкета.ЗаявкаФамилия
			И втДубли.ЗаявкаОтчество = Анкета.ЗаявкаОтчество
			И втДубли.ДатаРождения = Анкета.ДатаРождения
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВтАН.Ссылка.АдресЮр КАК АдресЮр,
	КОЛИЧЕСТВО(*) КАК Сч
ПОМЕСТИТЬ Итог
ИЗ
	ВтАН КАК ВтАН

СГРУППИРОВАТЬ ПО
	ВтАН.Ссылка.АдресЮр

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(*) = 1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Анкета.Ссылка
ИЗ
	Итог КАК Итог
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Анкета КАК Анкета
		ПО Итог.АдресЮр = Анкета.АдресЮр
Показать
Найденные решения
6. Said-We 21.11.23 15:16 Сейчас в теме
На 1С лень и сейчас под рукой нет. Но примерный алгоритм пожалуйста. Даже два примерных варианта.
Суть в обоих та же. Производительность разная. На 1С переписывается, но с построениями временных таблиц и джоинами.
Писать много и на скрин экрана целиком не поместится. :-)
Прикрепленные файлы:
7. Said-We 21.11.23 15:26 Сейчас в теме
(1) Наврал - можно ещё так. На 1С переписывается 1 к 1.

У вас соответственно:
Максимум(Выбор когда Анкета.Дата между &ДатаН И &ДатаК тогда 1 иначе 0 конец)>0
вместо max(EstVPeriode)>0. Плюс ваше условие на статус - его не рисовал.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 21.11.23 13:19 Сейчас в теме
(1) КОЛИЧЕСТВО(*) = 1 это значит дублей нет
3. aalu14 21.11.23 13:23 Сейчас в теме
(2) Да, я сначала выбираю дубли, а потом неповторяющиеся адреса
4. Said-We 21.11.23 13:23 Сейчас в теме
(1) А почему просто количество различные не посчитать? Там где количество различных ссылок окажется больше чем 1, и количество различных адресов более 1, там есть разные адреса. Адрес это же реквизит шапки?
Условно первый и третий ваш запрос в один.

Туда же добавить и условие про дату. Сумма(Выбор когда <условие в периоде> тогда 1 иначе 0 конец)>1
5. aalu14 21.11.23 13:41 Сейчас в теме
(4) Не понимаю, не могли бы вы накидать пример, пожалуйста ?
6. Said-We 21.11.23 15:16 Сейчас в теме
На 1С лень и сейчас под рукой нет. Но примерный алгоритм пожалуйста. Даже два примерных варианта.
Суть в обоих та же. Производительность разная. На 1С переписывается, но с построениями временных таблиц и джоинами.
Писать много и на скрин экрана целиком не поместится. :-)
Прикрепленные файлы:
7. Said-We 21.11.23 15:26 Сейчас в теме
(1) Наврал - можно ещё так. На 1С переписывается 1 к 1.

У вас соответственно:
Максимум(Выбор когда Анкета.Дата между &ДатаН И &ДатаК тогда 1 иначе 0 конец)>0
вместо max(EstVPeriode)>0. Плюс ваше условие на статус - его не рисовал.
Прикрепленные файлы:
Оставьте свое сообщение

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