create table office(name varchar(10),`in` int,`out` int default 2999);
insert into office values('田中',2003,2008),('加藤',1995,2001),('桐谷',2009,default)
//2007年在籍
select * from office where 2007 between `in` and `out`; //田中さん
//2010年在籍
select * from office where 2010 between `in` and `out`; //桐谷さん
//在籍年数が4年以上6年未満の社員
select * from office where least(year(now()),`out`)-`in`+1 between 4 and 6 ; //田中さんと桐谷さん
(1)
select * from office where in <= 2007 and (out >= 2007 or out is null);
(2)
select * from office where (in <= (year(now()) -4) and in > (year(now()) -6) and out is null) or ((out - in) >= 4 and (out - in) < 6);
お礼
回答ありがとうございます。 データはphpmyadminで入力しているのですが、デフォルト値を「2999」に設定しても上手く反映されず、結局在籍中の社員は「out」の数字を「2999」と直接入力しました。 そしてご教示頂いたSQL文で実行してみたら無事できました。 色々とありがとうございました。勉強になりました。