2014-03-22 2 views
2

acess에서 2000 년 이전에 고용 된 모든 사람들이 이전 타이머를 사용해야합니까? 나는 코드를 작성했고 코드를 실행할 때 모든 사람들이 이전 타이머를 사용한다. 나는 그것을하기를 원하지 않는다. 나는 2000 년 고용 된 사람들에 의해서만 그것을 원한다. 나는 아이템을 가격에 맞추기 위해 코드를 작성했기 때문에 내가 일하는 것이 무엇인지 알 수 없다. 그러나 날짜별로 이것을하는 것은 내가 잃어버린 것처럼 보입니다. 누군가가 올바른 길로 나를 인도 할 수 있다고 쓰는 select 문이 여기에 있습니다. 내가 선택 문을 변경하면열의 날짜를 읽으려면 어떻게해야합니까?

select employee_id, 
    hire_date, 
    'OLD TIMER' as message 
from l_employees 
where hire_date > 2000 
union all 
select employee_id, 
    hire_date, 
    ' ' 
from l_employees 
where not (hire_date >2000) 
or hire_date is null 
order by employee_id; 

나는 내가 필요로하는 금액으로 원하는 결과를 얻을하지만 난 내가 고용 날짜 날짜/시간 데이터 형이며, 사용할 때 일이 필요합니다. 여기

select employee_id, 
credit_limit, 
'OLD TIMER' as message 
from l_employees 
where credit_limit > 15.00 
union all 
select employee_id, 
credit_limit, 
' ' 
from l_employees 
where not credit_limit > 15.00 
or credit_limit is null 
order by employee_id; 

이 내가 활용하는 방법을 발견
employee_id hire_date message 
     201 6/1/1998 OLD TIMER 
     202 8/16/1999 OLD TIMER 
     203 2/2/2009 OLD TIMER 
     204 7/1/2008 OLD TIMER 
     205 3/1/2006 OLD TIMER 
     206   
     207 12/1/2008 OLD TIMER 
     208 4/1/2008 OLD TIMER 
     209 3/17/1999 OLD TIMER 
     210 2/16/2007 OLD TIMER 
     211 2/3/2014 OLD TIMER 

그냥 업데이트 맨 select 문에 대한 출력 내가 그 문

employee_id credit_limit message 
     201  $30.00 OLD TIMER 
     202  $25.00 OLD TIMER 
     203  $25.00 OLD TIMER 
     204  $15.00  
     205  $25.00 OLD TIMER 
     206   
     207  $25.00 OLD TIMER 
     208  $25.00 OLD TIMER 
     209  $15.00  
     210  $25.00 OLD TIMER 
     211  $40.00 OLD TIMER 

을 형성 얻을 결과입니다 내가이 문제를 가지고있는 모든 도움에 감사를 표하는 결과.

+0

hire_date의 데이터 유형은 무엇입니까? 실제로 테이블에 대한 스키마를 질문에 추가하십시오. 또한 ** 2000 년 이후 ** 고용 된 직원에 대해 ''이전 직원 ''을 배치하기위한 코드가 작성된 것 같습니다. –

+0

날짜/시간입니다. –

+0

'YEAR (hire_date)> 2000'을 사용해보세요! –

답변

2
select employee_id, 
     hire_date, 
     switch(
       year(hire_date) < 2000, 'OLD TIMER' 
       , true, 'Greenhorn' 
      )as message 
from l_employees 
0

이 시도 :이 테스트 테이블에 나를 위해 노력하고 있습니다

select employee_id, 
    hire_date, 
    'OLD TIMER' as message 
from l_employees 
where hire_date < 20000101 
union all 
select employee_id, 
    hire_date, 
    ' ' 
from l_employees 
where hire_date >= 20000101 
or hire_date is null 
order by employee_id; 

. 여기서는 YYYYMMDD 형식으로 날짜를 지정하고 YYYY는 지정하지 않습니다.

+0

나는 당신의 방식대로 시도해 왔으며 어떤 이유에서든 오래된 타이머는 여전히 모든 employess에 의해 자리를 잡고 있습니다. –

+0

그런 다음 문제를 찾기 위해 테이블 ​​스키마와 샘플 데이터를 게시하십시오. –

+0

여기 내 테이블 –

관련 문제