2016-08-08 3 views
0

중복 항목을 제거하는 SYNCSORT 작업을 실행하려고하고 실행하면 여전히 중복이 발생합니다.Syncsort Sum 필드 = 없음 중복 제거 안 함

INCLUDE COND=(((61,1,CH,EQ,C'P'),OR, 
       (61,1,CH,EQ,C'V')),AND, 
       (8,2,CH,EQ,C'FL'))  
OUTREC FIELDS=(1:12,20,    
       30:36,20,    
       55:61,1)    
SORT FIELDS=(30,20,CH,A,    
      01,20,CH,A)    
SUM FIELDS=NONE      

입력은 다음과 같다 : 난 아직도 중복을 얻고 것을 제외하고

----+----1----+----2----+----3----+----4----+----5----+----6 
     FL       AMELIA CITY    
32034 FL NASSAU     FERNANDINA BEACH   P 
32034 FL NASSAU     AMELIA CITY    V 
32034 FL NASSAU     AMELIA ISLAND   S 
32034 FL NASSAU     FERNANDINA    S 

내가 예상 출력의 대부분을 얻고 다음은 내가 사용하고있어 Syncsort에서 코드입니다. 내 오류를 찾을 수 아니에요으로

----+----1----+----2----+----3----+----4----+----5----+ 
MANATEE      BRADENTON    P 
MANATEE      BRADENTON    P 
MANATEE      BRADENTON    P 
MANATEE      BRADENTON    P 
MANATEE      BRADENTON    P 
MANATEE      BRADINGTON    V 
POLK       BRADLEY     P 
HILLSBOROUGH     BRANDON     P 
SUWANNEE      BRANFORD     P 
MIAMI-DADE     BRICKELL     V 

어떤 도움을 주시면 감사하겠습니다 다음과 같이 내가 가진 출력됩니다.

+0

우선은, 정렬하면 출력 레코드 종류를 구분 한 것으로 보면 입력 레코드에 적용됩니다. –

답변

3

이것은 당신이 종류에 합산하는 것입니다 :

< ------------ Sort Field -----------------------> 
----+----1----+----2----+----3----+----4----+----5----+----6 
     FL       AMELIA CITY    
32034 FL NASSAU     FERNANDINA BEACH   P 
32034 FL NASSAU     AMELIA CITY    V 
32034 FL NASSAU     AMELIA ISLAND   S 
32034 FL NASSAU     FERNANDINA    S 

중복 기록 당신이 을 볼 수있는 최초의 11 바이트 다릅니다. 확인하려면을 제외한 을 시도해보십시오.

가능한 변화 - inrec

  • 다시 코드에 outrec 출력과 관련된 필드 정렬은 다음을 참조

    • 변경 : 기반

    다음 정렬 종류 출력은 다음과 같습니다.

    INCLUDE COND=(((61,1,CH,EQ,C'P'),OR, 
           (61,1,CH,EQ,C'V')),AND, 
           (8,2,CH,EQ,C'FL'))  
    OUTREC FIELDS=(1:12,20,    
           30:36,20,    
           55:61,1)    
    SORT FIELDS=(42,20,CH,A,    
          12,20,CH,A)    
    SUM FIELDS=NONE 
    
  • +0

    나는 outrec를 inrec으로 변경 한 다음 정렬을 변경했습니다. –

    1

    코드의 순서는 중요하지 않습니다. "정렬"의 다른 단계는 SORT가 원하는 순서대로 실행됩니다.

    이 경우 INCLUDE, SORT, SUM, OUTREC이됩니다. 이 경우 컨트롤 카드를 완전히 뒤집어서 확인할 수 있습니다. 동일한 출력을 얻을 수 있습니다.

    SORT 전에 무언가를하고 싶다면 INREC을 사용하십시오. SORT 문 앞에 OUTREC을 찾으려하지 마십시오. 여기에서는 SORTing을 수행하기 때문에 필요한 데이터 만 포함하고자합니다. 을 입력하지 마십시오.에 공백을 포함하여 서식을 지정하려고합니다. 왜 각 레코드에 별도의 동일한 데이터가있는 SORT 파일을로드하려고합니까?

    INREC 및 OUTREC에서는 FIELDS을 사용하지 마십시오. OUTFILOUTREC을 사용하지 마십시오. FIELDS가 "과부하"(FIELDS를 몇 번 사용했는지 확인하고 "동일"이 몇 개 있는지 확인)하고 OUTREC이 "과부하"상태임을 분명히해야합니다. 10 년 전만해도 BUILD이 도입되어 상황이 훨씬 명확 해졌으며, 실제로 무엇을하는지 설명하고 BUILD를 볼 때마다 BUILD 만 의미합니다.

    INCLUDE COND=(((61,1,CH,EQ,C'P'), 
           OR, 
           (61,1,CH,EQ,C'V')), 
           AND, 
           (8,2,CH,EQ,C'FL')) 
    INREC BUILD=(36,20, 
           12,20, 
           61,1) 
    SORT FIELDS=(1,40,CH,A) 
    OUTREC BUILD=(21,10, 
           10X, 
           1,20, 
           5X, 
           41,1) 
    

    INREC은 원하는 데이터 만 선택하고 하나의 SORT 키만 지정해야하는 순서로 선택합니다.

    OUTREC은 원하는 방식으로 데이터 형식을 지정합니다. SORT의 각 레코드에 대해 15 바이트가 저장되었습니다 (공백).10X은 10 개의 공백, 5X는 5 개의 공백입니다. 당신이 "명시 적"공백이 아닌 열 번호를 사용하여 암시 사람을 포함하는 경우가 훨씬 쉽다는 것을

    참고, 더 많은 유지 보수 때문에 코드를 이해하고 있습니다. 보고서의 10 개 열을 이미징하고 1 열과 2 열 사이의 간격이 올바르지 않습니다. 모두을 열 참조로 변경 하시겠습니까? 추가 공간을 하나 추가 하시겠습니까? 아니면 7X를 8X로 변경하고 나머지는 자체적으로 변경 하시겠습니까? 지루한 변화를 즐기더라도 동료를 기억하십시오 :-)

    데이터가 이미 인 경우 SUM FIELDS = NONE을 사용하지 마십시오. OUTFIL보고 기능, TRAILER3REMOVECC, NODETAILSECTIONS를 사용합니다. NEVER SORT 데이터는 당신이 SUM FIELDS=NONE과 중복을 제거 할 수 있습니다.