회사 업무상.. 델파이를 좀 해야하는데.. 첨 접하는거라.. 여간 어려운게 아니군요.. 고수님들의 답변 부탁드릴께요.. 잘 모르는거라서. .질문이 좀 이상해두
양해해주시구요....
2개의 DB의 데이터를 동시에 불러야 하는건데...
SQL 상에서 JOIN을 시켜서 가져올려구 하는데 계속 에러가 나더군여..
A라는 DB와 B라는 DB에서 C라는 공통 필드의 값을 조건으로 해서
가져올려구 하는데 A DB에선 C가 넘버의 형태로 되어있고 B라는 DB에선
Alpha(8)의 형태로 되어있거든요.. DB 자체를 변환시키기 보다는 이것을
SQL문 안에서.. 변형을 시키고 싶은데 어떻게 해야할지를 모르겠습니다.
그리고 이 경우 group by는 어떻게 써야할 지도 알고 싶네요...
질문이 어설프지만.. 답변해주심 감사하겠습니다.
제가 쓴 예를 보여드릴겠습니다.
str := 'select CF.SVC_CD A, ' //1
+ 'CF.SVC_NUM B, ' //2
+ 'CF.PRIC_PLAN C, ' //3
+ 'CF.BILL_RGIB D, ' //4
+ 'CF.BILL_RDOM E,' //5
+ 'CF.BILL_RKTK F,' //6
+ 'CF.BILL_RSKTK G,' //7
+ 'CF.BILL_RDATA H,' //8
+ 'CF.BILL_RNTJUNG I, ' //9
+ 'CF.BILL_RNTTONG J, ' //10
+ 'CF.BILL_RNTINFO K,' //11
+ 'CF.BILL_RPHMAIL L,' //12
+ 'CF.BILL_RGRPHONE M, ' //13
+ 'CF.BILL_RGRPHAL N, ' //14
+ 'CF.BILL_JAHAL O, ' //15
+ 'CF.BILL_011HAL P, ' //16
+ 'CF.BILL_LNGHAL Q, ' //17
+ 'CF.BILL_BUSHAL R, ' //18
+ 'CF.BILL_BUSHAL_D S, ' //19
+ 'CF.BILL_RADD T, ' //20
+ 'CF.BILL_RCNIP U, ' //21
+ 'CF.BILL_RINFO V, ' //22
+ 'CF.BILL_RTAX W, ' //23
+ 'CF.BILL_RVAT X, ' //24
+ 'CF.BILL_RROA Y, ' //25
+ 'CF.BILL_GWANAB Z, ' //26
+ 'CF.BILL_ADJ AA, ' //27
+ 'CF.BILL_CRFLO AB,' //28
+ 'CF.BILL_ETC AC,' //29
+ 'CF.BILL_JEOLSA AD, ' //30
+ 'CF.TOT_OPEN_BAL AE, ' //31
+ 'sum(CP.BILL_DOSU) AF, ' //32
+ 'sum(CP.BILL_CHARD_AMT) AG, ' //33
+ 'CF.JUNGANG_AMT AH , ' //34
+ 'CF.ILBAN_ACNT_AMT AI, ' //35
+ 'CF.SVC_SET_UP_DT AJ' //36
+ ' from CD_FEE CF, CD_CALL_PERTIME CP'
+ ' where CF.SVC_CD = ' + chr(39) + 'C' + chr(39)
+ ' and CF.SVC_NUM = CP.SVC_NUM '
+ ' group by CF.SVC_NUM, CP.SVC_NUM '
+ ' order by CF.JUNGANG_AMT desc';
위의 문장중에 두 테이블이 조인되는 키가 되는 필드가 SVC_NUM 인지요?
그렇다면 한쪽의 필드를 형변환 하셔야 할듯 합니다...
예를 들면 AND CF.SVC_NUM = TO_NUMBER(SVC_NUM) ...이런 형태로요
그리고 이런 경우는 필드를 바꾸심이 옳을듯 합니다...웅~
Datatype이 다른필드를 Join한다는건 조금 위험한듯 보입니다...
Index문제도 있을듯...
그리고 Group by절의 필드들은...Select절에 Group함수를 제외한 필드는
모두 들어가야 하는걸로 알고 있습니다...
SQL을 수정하셔야 할듯 싶네요...왜 Group을 해야 하는지...
그리고 특별히 다른 자료형으로 필드들이 조인 되어야 하는지 명확한 이유가
있다면 sql을 만드는데 도움이 될듯 합니다.