오라클8.1.7 델파이5 입니다.
var Tyear : double;
Tyear := 2004;
with Query1 do begin
close;
sql.clear;
sql.add(' select case when (2004-To_number(substr(pe_stdt,1,4))+1) between 15 and 90 then ''A15년이상'' ');
sql.add(' when (2004-To_number(substr(pe_stdt,1,4))+1) between 10 and 14 then ''B10년이상'' ');
sql.add(' end as 재직년수.....');
이럴때요...
--------------------
10년이상 00명
--------------------
위처럼 한줄만 나옵니다. 15년 이상은 데이터가 없는경우죠...
질문1: 데이터가 없어도
---------------------
15년 이상
10년 이상 00명
---------------------
이렇게 나오게 하려면 어찌해야 하나요?
질문2: 위SQL문중 2004를 변수를 받아서 처리 하고자 하는데여
''+Tyear+'' 이것도 안되고, '''+Tyear+''' 이것도 안되고....
보통 Double 형 변수는 ''+Tyear+'' 이리 사용하지 않나요?
이때 데이타가 없으면 한줄만 나올 수도 있는거고요.
두가지 케이스라면 case문이 아니라도 조건을 where밑에 넣고 union 문 쓰면 될것 같습니다.
select '15년 이상' as 재직년수, count(*) as 숫자
from ...
where (2004-To_number(substr(pe_stdt,1,4))+1) between 15 and 90
union all
select '10년 이상' as 재직년수, count(*) as 숫자
from ...
where (2004-To_number(substr(pe_stdt,1,4))+1) between 10 and 14