out_date 는 날짜형이고 lend_su 는 숫자형입니다.
검색하고자 하는것은 out_date(대여일자)+lend_su(대여일수)를 계산하여 :a2, :a3 에 포함 되는 레코드만을 추출 할려고 합니다.
select out_date+lend_su as t_date from .... 을 하계 되면 t_date의 값이 out_date+lend_su를 계산한 값이 출력 됩니다. 그런데 where 절에 넣어 퀴리를 하니 계산이 되지 않는것 같아요.
디비는 mysql 입니다.
<!--CodeS-->
if active then close;
sql.clear;
sql.add('select * from '+order_board);
sql.add(' where m_no = :a1');
sql.Add('and (out_date+lend_su) between :a2 and :a3');
parambyname('a1').asinteger := check_m_no;
parambyname('a2').asdate := strtodate(check_date);
parambyname('a3').asdate := strtodate(check_date)+check_su;
open;
<!--CodeE-->
out_date 필드에는 2005-8-26, lend_su 필드는 1
check_date = 2005-8-27
check_su = 1
이렇게 되어 있는데 데이타가 검색이 되지를 않네요.
뭐가 잘못 된 것인지...
Where절에서는 아마 인식을 하지 못할 겁니다. 따라서 Select절에서 두개의 Field를 합친 값이 나오는 새로운
Field를 만들어 주시구요. Where절에서 이 Field를 사용하시면 되지 않을까 싶습니다.
참고로 MS Access에서는 이런 식으로 만들어 조회를 합니다.
SELECT out_date, lend_su, (out_date+lane_su) as sumfield from table
WHERE sumfield between :a2 and :a3;
답변이 되었으면 합니다. 그럼