0
Я пытаюсь объединить два файла на основе ключа и добавить новый столбец в результат на основе условия, но я не могу понять, почему мое условие в команде не работает. Пожалуйста, помогите мне понять правильный способ сделать это.Syncsort Присоединиться к двум файлам
a.txt
3~Y
4~0
1~Y
2~N
b.txt
4~44~444
3~33~333
2~22~222
1~11~111
Syncsort Команда
/INFILE a.txt ALIAS DOC '~' 3000
/JOINKEYS BA1
/FIELD DOC_Rest1 2:1 - 2:
/INFILE b.txt ALIAS FINACT '~' 3000
/JOINKEYS BA2
/FIELD FINACT_DID 2:1 - 2:
/FIELD FINACT_PILOT 3:1 - 3:
/FIELDS BA1 1:1 - 1:, BA2 1:1 - 1:
/COND CHKINCCALS (DOC_Rest1 = 'Y')
/DERIVEDFIELD endofrecord '\n'
/DERIVEDFIELD TYPECAL
If CHKINCCALS then FINACT_DID
Else FINACT_PILOT
/OUTFILE c.txt OVERWRITE /REFORMAT LEFTSIDE:BA1,LEFTSIDE:DOC_Rest1, TYPECAL, endofrecord
/END
Ожидаемый результат
1~Y~11~
2~N~222~
3~Y~33~
4~0~222~
Фактический результат
1~Y~Y~
2~N~~
3~Y~Y~
4~0~~
ОК, спасибо. Таким образом, похоже, что LEFTSIDE относится к вашей левой половине объединенной записи, а RIGHTSIDE - к правой половине, что позволяет выполнять определения полей с использованием данных из файла1, file2. Без RIGHTSIDE вы снова собирали данные из файла1, а не из тех же позиций в файле2. У вас есть руководство? SyncSORT предоставит копии как часть вашей лицензии, поэтому нет причин не делать этого. –