Как подсчитать количество записей с помощью Syncsort? - PullRequest
0 голосов
/ 15 декабря 2011

МОЕ требование - получить одинаковое количество записей с использованием JCL - Syncsort.

Мой входной файл содержит упакованные десятичные значения в позиции 58-60.Мне нужно получить количество записей, когда вход находится в диапазоне от 01 до 05.

На самом деле я пытался преобразовать значения PD в ZD и сравнить с C'01 'и C'05'.

Я не смог получить результат.

Пример: данные входного файла в 58-60 (3 байта в формате Comp-3)

07.2

05.2

04.0

45,7

02.4

Вывод будет:

RF value |Количество

02,4 1

04,0 1

Может кто-нибудь, пожалуйста, дайте мне знать, как это сделать?

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

В ваших спецификациях указано, что поле имеет формат 3-байтового PD, но вы предоставляете примеры записей, которые содержат десятичную точку.Данные PD не могут содержать десятичную точку, поэтому я предполагаю, что подразумевается десятичная точка.3-байтовые данные, которые соответствуют вашему значению 07.2, на самом деле будут содержать x'00072C 'для следующих целей.

Чтобы облегчить понимание примера (не зная деталей макета вашей записи), яЯ рассматриваю 3-байтовое поле PD, как будто оно начинается в позиции 1 данных фиксированной длины.Не стесняйтесь изменить пример, чтобы он соответствовал вашему фактическому макету данных.

//SYSIN  DD  *   
 SORT FIELDS=(1,3,PD,A)   
 INCLUDE COND=(1,3,PD,GT,10,AND,1,3,PD,LT,50)   
 OUTREC FIELDS=(1,3,PD,ZDF,75X) 
 OUTFIL FILES=OUT,NODETAIL,
              SECTIONS=(1,5,
                TRAILER3=(1:1,4,C'.',5,1,COUNT))
/*

Для получения дополнительной поддержки обратитесь в службу поддержки клиентов, Syncsort Inc. zos_tech@syncsort.com

1 голос
/ 18 декабря 2011

Попробуйте это ...

//SYSIN DD *
  INREC FIELDS=(1,4,C'00001')
  SORT FIELDS=(01,04,CH,A)
  SUM FIELDS=(05,05,ZD,A)
  OUTREC FIELDS=(01,04,05,05)
/*

Вкратце, я добавляю числовое значение 00001 к каждой записи, сортирую их в числовом поле и суммирую все такие записи, что даст вам желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...