안녕하세요.
저는 테이블3개를 이용해서 left outer join을 했습니다.
그런데 여기에서 또한가지 조건을 줘야 하거든요...
현재년도자료만을 조인해야 합니다. 그런데 여기에서 어떻게 해야 할 지 도전히 모르겠네요..
sql.add('select a.c_opcode,a.c_name,a.c_tel,sum(b.t_total) as tot,
sum(b.r_total) + sum(cint(format(c.i_money,'''+ '#;#;#; '+ '''))) as mtotal, sum(b.s_banib) as btotal,(tot-mtotal-btotal) as mitotal from customer a');
sql.add('left outer join (master_sales b left outer join money_2 c on b.c_opcode = c.c_opcode) on a.c_opcode = b.c_opcode');
sql.add('where a.c_opcode like '''+edit1.text +'%'' or c_name like '''+edit1.text+'%''');
sql.add('group by a.c_opcode,a.c_name,a.c_tel');
안녕하세요.. 델초봅니다...
솔직히 Join을 할때 Inner Join을 해야하는지.. Outer Join을 해야하는지는
잘 모르겠습니다... 제가 알고 있기로는 보통 Inner Join을 사용한다고 알고
있습니다.. 어떤 경운지는 모르겠지만 암튼 그 경우에 Outer Join을 사용하는 것이
성능이 좋다고합니다...
Like문을 사용하셔도 될것 같은데....
그러니까.. 먼저 올해의 년도를 구합니다...'
예를들면... YYYY:=FormatDateTime('YYYY',Date);
이렇게 하면 올해의 년도를 구할수 있을거 같군요.. 다른 방법도 있지만...
그냥.. 언능생각나길래....
.
.
.
SQL.Add('Where DateField(예입니다) :Year 나머지 비교....');
ParamByName('Year').AsString:=Year{위의 년도 변수};
이렇게 하면... 만약 오늘이 2000-01-01 이면 2000년의 자료들이 검색되겠죠....
제가 설명을 제대로 했는지 모르겠내요...
돔이 될려나 모르겠습니다. 넘 횡설수설한거 같습니다...
이해가 잘않되시면... 다시 말씀하세요... 그럼..
즐코딩하세요..
> 안녕하세요.
> 저는 테이블3개를 이용해서 left outer join을 했습니다.
> 그런데 여기에서 또한가지 조건을 줘야 하거든요...
> 현재년도자료만을 조인해야 합니다. 그런데 여기에서 어떻게 해야 할 지 도전히 모르겠네요..
> sql.add('select a.c_opcode,a.c_name,a.c_tel,sum(b.t_total) as tot,
> sum(b.r_total) + sum(cint(format(c.i_money,'''+ '#;#;#;