|
제가 제대로 이해했는지 모르겠는데요
그러니까 "REG_SEQ" 만 이전값과 같은지 비교하고
if 같으면 : 이전 LinkID와 현재 LinkID를 같이 저장한다구요?
의문사항 있습니다.
만약 "REG_SEQ"가 2개이상 똑같은것이 있는경우는 어떻게 하죠?
아래 제가 이해한데로 샘플 코딩해봅니다.
이 코드는 DB에서 REG_SEQ 로 order by 해서 query한경우입니다
만약 db에서 order by도 지원하지 않는다면
STL의 vector 나 list 같은것을 이용해서 sorting한뒤에
아래와 같은 로직으로 돌리면 되겠네요
String sRegSeq0,sRegSeq1;
String sLink0,sLink1;
for(i = 0; i < itCount; i++)
{
sRegSeq1 = m_DAO->t_DBA->GetField("REG_SEQ"); //시퀀스 값
sLink1 = m_DAO->t_DBA->GetField("LINK_ID1"); // ID 값
if(sRegSeq1==sRegSeq0 ) //1. 이전 REG_SEQ 와 같은 경우
{
//A) (이전에 똑같은 REG_SEQ에 해당하는 모든 LINK_ID가 저장됨)
sLink0=sLink0+","+sLink1; //","로 구분함
Save( sLink0 );
Function1();//2) 해당함수 호출
//B) 만약 REG_SEQ 가 똑같은 경우 바로앞에 하나만 LINK_ID를 저장한다면
Save(sLink0,sLink1);
sLink0=sLink1;
Function1(); //2) 해당함수 호출
}
else
{
sRegSeq0=sRegSeq1;
sLink0=sLink1;
Save(sLink0);//1) save sLink0 //---> 현재 LinkID만 저장됨
Function2(); //2) 해당함수 호출
}
m_DAO->t_DBA->MoveRec(i);
}
kurt 님이 쓰신 글 :
: 장성호 님이 쓰신 글 :
: : DB가 GroupBy가 안된다고요?
: : 그럼 join도 기대하지 말아야 겠네요
: :
: : 그냥 query결과를 가지고 해야한다면
: :
: : 그냥 변수하나 만들어두고 이전 Record값과 계속 비교하는 로직이 가장 이해하기 쉽겠네요
: :
: :
: : [방법1]
: :
: : 1. select 할때 order by REG_SEQ로 하세요
: : sql="select * from table_name order by REG_SEQ";
: :
: : 2. 이전 Record값을 저장할 변수를 하나 두고 계속 비교하는 방법입니다.
: :
: : String sRegSeq0,sRegSeq1;
: : String sLink0,sLink1;
: :
: : for(i = 0; i < itCount; i++)
: : {
: : sRegSeq1 = m_DAO->t_DBA->GetField("REG_SEQ"); //시퀀스 값
: : sLink1 = m_DAO->t_DBA->GetField("LINK_ID1"); // ID 값
: :
: : if((sRegSeq1!=sRegSeq0 ) && (sLink1!=sLink0)) //unique한경우를 찾는 비교문 ..
: : {
: : sRegSeq0=sRegSeq1;
: : sLink0=sLink1;
: : // REG_SEQ값이 다음 REG_SEQ값과 같은지 다른지 체크하여 각각 LINK_ID1을 저장해야 하는데??
: : }
: :
: : m_DAO->t_DBA->MoveRec(i);
: : }
: :
: :
: : //....
: : if 구문이 님의 의도와 맞는지 잘모르겠습니다만 ..
: : 위와같이 하는 방법이 일단 이해하기 쉽고 심플할 것 같네요
: : 그런데 이정도는 님께서도 충분히 생각하실수 있으실것 같은데..
: : 제 답이 엉뚱하다면 좀더 명확하게 질문 부탁드립니다.
:
: 제 질문이 모자랐나봅니다.
: 루프문을 돌면서 REG_SEQ 값이 이전 값과 동일하다면 이전 REG_SEQ의 LINK_ID 값과 현재의 LINK_ID 값을 저장하여
: 해당 함수를 호출/처리하고, 계속 루프를 돌면서 이전 REG_SEQ값과 현재의 REG_SEQ값이 틀리다면 현재의 REG_SEQ값에 해당하는 LINK_ID 를 저장하여 해당 함수를 호출/처리하는 로직입니다. 머리가 돌이 되어버린 느낌...ㅠㅠ
|