Задача такая: получить все остатки (начальные и конечные по 60 счету), и взять все обороты, за исключением таких Дт6001 Кт 6002; Дт 6002 Кт 6001; Дт6021 Кт 6022; Дт 6022 Кт 6021.
Написал запрос. Сделал так:
1. В первом пакете запросов сделал вложенный запрос, в котором из таблицы ХозрасчетныйОбороты вытянул Субконто1, Субконто2 и Субконто3, по которым были обороты. Результат этого вложенного запроса связал левым соединением с ХозрасчетныйОстаткиИОбороты(период Авто). Из ХозрасчетныйОстатки и обороты вытянул Регистратор, Начальные остатки и конечные остатки.
2. во втором пакете запросов объединением вытянул обороты по 60 счету
Дт6001 и Кт не равно 6002;
Дт6002 и Кт не равно 6001
Дт6021 и Кт не равно 6022
Дт 6022 и Кт не равно 6021.
3. Затем связываю левым соединением результат первого пакета со вторым по полям Счет, Регистратор, субконто1, субконто2, субконто3.
Проблема: у меня неправильно считаются начальные и конечные остатки.
Например.
Уже в отчете записи с начальными остатками будут с пустым регистратором.
Не везде правильно считается начальный остаток по группе. Вот пример в скрине. Ресурсы не правильно рассчитывают
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший