В программе была ошибка с отчетами (неправильно могли начисляться суммы). Программу исправили и теперь чтобы найти разницу и откорректировать суммы (доплатить/снять):
1. беру старые данные начислений, суммирую по столбцам с суммами (sm1-8) чтобы по ключевым полям CODE, NUMB, RASH получить 1 строчку.
2. Тоже само что и в п.1, только с новыми данными.
3. После этого отнимаю один список от другого.
В целом все ХОРОШО, но вот есть одна загвоздка которую не могу решить.
По какой-то причине в результате я получаю 1956 строк, которые попарно сначала сумма +, а потом -. В сумме оно дает 0,00.
Не могу избавиться от этого.
Что неправильно делаю?
Исходные данные:
Выполняю запрос на суммирование:
Почему получается 2 строчки. Думал может пробел в поле RASH (Хотя по командам INSERT уже видно что его нет). Прогнал обе таблицы trim(rash). Результат не изменился.
Попробовал сделать индекс на обе таблицы:
CREATE INDEX IDX_RJ_NEW_RAX ON RJ_NEW (CODE, NUMB, RASH);
CREATE INDEX IDX_RJ_OLD_RAX ON RJ_OLD (CODE, NUMB, RASH);
Результат не изменился.
Исходные таблицы содержат много данных (по 5млн. строк каждая), решил повторить только на описанных выше примерах - результат не изменился: при суммировании получаю в результат 2 строчки.
--------------------------
Firebird 3.0.1.32609;
IBExpert 2017.2.7.1;
Windows 10 32-bit;
4Gb RAM;
SSD 512Mb + HDD 1 Tb;
Настройки по умолчанию
1. беру старые данные начислений, суммирую по столбцам с суммами (sm1-8) чтобы по ключевым полям CODE, NUMB, RASH получить 1 строчку.
2. Тоже само что и в п.1, только с новыми данными.
3. После этого отнимаю один список от другого.
В целом все ХОРОШО, но вот есть одна загвоздка которую не могу решить.
По какой-то причине в результате я получаю 1956 строк, которые попарно сначала сумма +, а потом -. В сумме оно дает 0,00.
Не могу избавиться от этого.
Что неправильно делаю?
Исходные данные:
+ |
Выполняю запрос на суммирование:
+ |
Почему получается 2 строчки. Думал может пробел в поле RASH (Хотя по командам INSERT уже видно что его нет). Прогнал обе таблицы trim(rash). Результат не изменился.
Попробовал сделать индекс на обе таблицы:
CREATE INDEX IDX_RJ_NEW_RAX ON RJ_NEW (CODE, NUMB, RASH);
CREATE INDEX IDX_RJ_OLD_RAX ON RJ_OLD (CODE, NUMB, RASH);
Результат не изменился.
Исходные таблицы содержат много данных (по 5млн. строк каждая), решил повторить только на описанных выше примерах - результат не изменился: при суммировании получаю в результат 2 строчки.
--------------------------
Firebird 3.0.1.32609;
IBExpert 2017.2.7.1;
Windows 10 32-bit;
4Gb RAM;
SSD 512Mb + HDD 1 Tb;
Настройки по умолчанию