2016-06-23 2 views
0

그래서 비교적 복잡한 프로세스로 인해 Netezza 데이터웨어 하우스에서 엄청난 양의 데이터가 삭제됩니다. 나는 두 개의 새로운 필드를 추가하여 모든 종류, 그룹, by 등의 새로운 필드를 추가하는 일반적인 rigamarole을 거쳤으며 필드는 일관되게 내 데이터를 최대 12 %까지 높였습니다. 나는에 끌어 또는 새 데이터를 병합 모든 조항 후 PROC 요약 연결 진단 도구로병합시 미스테리 값이 늘어나는

나는 두 PROC SQL 문

내 원래의 코드에서
proc sql; 
    create table ACTUALALL_CD2 as 
    select stay_y, timeframe, daysout, Stay_mo 
    from ACTUALALL_CD 
    where stay_y = &curyr 
    group by stay_y, timeframe, daysout, Stay_mo 
    order by daysout, Stay_mo; 
quit; 

proc sort data=ACTUALALL_CD2 nodupkey; 
    by stay_y timeframe daysout Stay_mo; 
run; 

proc sql; 
    create table ACTUALALL_CD3 as 
    select 
    a.WeekN, a.timeframe, a.timen, a.week, a.daysout, 
    a.wdwe,a.marsha, a.room_pool_cd, a.cd_tier_rpgm, a.month_cal_id, 
    a.market_prefix_cd , a.yrpd2, a.stay_y, b.Stay_mo,a.Curr_code, 
    a.fxmonth, a.fxrate,a.yrpd, a.yrmon, a.Month, 
    a.RN_TY as RNTY, a.rev_ty as RVTY, a.USDRVTY, a.RVTY_CDUS, 
    a.Holiday_date, a.RN_LY as RNLY, 
    a.rev_ly as RVLY, a.USDRVLY, a.RVLY_CDUS 
    from ACTUALALL_CD a 
    inner join ACTUALALL_CD2 b 
    on b.daysout = a.daysout; 
quit; 

나는에서에서 하나 개의 값을 잃게로 내려 고립 dayout 필드 (값 1 ~ 18의 필드 값 7) (내가하고 싶은) 그리고 그 결과 내 출력 값이 줄어 듭니다. 이 코드와 비교하면 (이 코드와 기존 코드의 차이점은 a.room_pool_cd와 a.cd_tier_rpgm이라는 추가 된 값뿐입니다).

이 코드를 어떻게 그 값을 없애는 지 알아 내야합니다. 저는 40 년의 sas 경험을 겸비한 두 명의 남자들이 이걸 실행했습니다. 편집이나 재 작성에 대한 제안은 크게 감사하겠습니다.

+0

변경하기 전에 코드를 표시 할 수 있습니까? 또한, 이들을 실행하는 데 노트 및 경고 (있는 경우)를 제공 할 수 있습니까? 그리고 각 단계에서 판독/출력되는 관측 수. –

+0

daysout에 dups가 있는지 확인하십시오. var. 두 데이터 세트 모두. – Reeza

답변

0

아무것도 제공되는 쿼리에서 이상한 보이는, 그래서 나는 단지 확인하기 위해 다음과 같은 제안 :

    은 SAS 세션을 다시 시작
  1. . 이전 실행과 상호 작용하는 것이 이상한 것은 아닌지 확인하십시오.
  2. 우연히 (Base SAS 편집기를 사용하는 경우) 우연히 F4 키를 누르고 제출 된 코드를 편집 창에 복사/붙여 넣지 않았는지 확인하십시오.
  3. 로그에서 error: 또는 warning: 또는 repeats of BY values을 검색하십시오.

이들 중 어느 것도 작동하지 않는다면 실제 문제는 원래의 쿼리와 새 쿼리 사이에 다른 개수의 키를 식별하는 것입니다. 원래 쿼리와 새 쿼리를 해당 키 중 하나만으로 제한하고 거기에서 디버깅을 시작하십시오. 레코드 수가 예상 결과를 얻을 때까지 새 쿼리에서 항목을 제거하면 문제가 발견됩니다. 이는 문제를 격리하고 해결하는 확실한 방법이지만 사람들이 항상 찾고있는 빠른 해결책은 아닙니다.

관련 문제