(0) 1.Открой консоль запросов.
2. Нарисуй в блокнотике или в экселе план запроса со стрелочками (поле-источник)
3.Напиши запрос, используй конструктор.
4.Посмотри результат. Много думай.
Далее профит или п.1
левое соединение с самой собой + количество различных док-ов справа = 1
подразумевается, что null будет учтено как различное значение. это надо проверить, не уверен что оно так
Если быть совсем точным, тогда:
Внутреннее соединение
Группировка по левому и правому документу, суммирование левого и правого количества.
Отбор на совпадение количеств.
Помещение во временную таблицу.
Внутреннее соединение временной таблицы с собой по условию левый документ=правый документ.
Отбор на совпадение количеств.
(11) Если требуется учесть дубли строк, тогда придется мудрить.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший