안녕하세요...머리가 아파서 질문드립니다.
다중 조건으로 검색하는데요..
테이블에 금액이라는 필드가 5개(k1,k2,k3,k4,k5)있습니다.
조건은 한 레코드에서 이 5개를 합한 금액이 10만원을 넘지
않고 날짜가 date1에서 date2사이의 레코드를 모두 검색하는 겁니다.
close;
sql.Clear;
sql.Add('select ibhak_day,id,name,regi_day1 from master');
sql.Add('where ((ibhak_day >= :date1) and (ibhak_day <= :date2))');
//이분에 금액을 필터링하는 조건이 들어가야 할것 같은데..
sql.Add('order by ibhak_day');
ParamByName('date1').AsDateTime := StrToDate(MaskEdit4.Text);
ParamByName('date2').AsdateTime := StrToDate(MaskEdit5.Text);
Open;
에수큐엘 내공이 강한분들 답변좀 부탁합니다.
서브쿼리를 쓰지않고 간단하게 처리가능하네요..
select문장에서 합해버리면 간단할것 같음..
좋은하루되세요..
close;
sql.Clear;
sql.Add('select ibhak_day,id,name,regi_day1, ');
sql.Add(' k1+k2+k3+k4+k5 amount ');
--> 옆에쓰면 필드명(앨리어스같이) 이 되는거 알죠?
(RDB마다 문법이 좀 틀림)
sql.Add(' from master ');
sql.Add('where ((ibhak_day >= :date1) and (ibhak_day <= :date2))');
sql.Add(' and amount < :num ');
sql.Add('order by ibhak_day');
ParamByName('date1').AsDateTime := StrToDate(MaskEdit4.Text);
ParamByName('date2').AsdateTime := StrToDate(MaskEdit5.Text);
ParamByName('num').AsInteger := 100000;
Open;
이주흥 께서 말씀하시기를...
> 안녕하세요...머리가 아파서 질문드립니다.
> 다중 조건으로 검색하는데요..
> 테이블에 금액이라는 필드가 5개(k1,k2,k3,k4,k5)있습니다.
> 조건은 한 레코드에서 이 5개를 합한 금액이 10만원을 넘지
> 않고 날짜가 date1에서 date2사이의 레코드를 모두 검색하는 겁니다.
>
> close;
> sql.Clear;
> sql.Add('select ibhak_day,id,name,regi_day1 from master');
> sql.Add('where ((ibhak_day >= :date1) and (ibhak_day <= :date2))');
> //이분에 금액을 필터링하는 조건이 들어가야 할것 같은데..
> sql.Add('order by ibhak_day');
> ParamByName('date1').AsDateTime := StrToDate(MaskEdit4.Text);
> ParamByName('date2').AsdateTime := StrToDate(MaskEdit5.Text);
> Open;
>
> 에수큐엘 내공이 강한분들 답변좀 부탁합니다.
>
>