This shows you the differences between two versions of the page.
kurs:sets_gruppenoperatoren [2012/10/04 15:43] mh |
kurs:sets_gruppenoperatoren [2014/09/10 21:22] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <code> | ||
- | select status, | ||
- | job_id, | ||
- | first_name, | ||
- | last_name, | ||
- | coalesce(start_date, | ||
- | (select max(end_date)+1 | ||
- | from job_history where employee_id = fe.employee_id), | ||
- | hire_date) start_date, | ||
- | end_date | ||
- | from ( | ||
- | SELECT 'H' status, | ||
- | employees.employee_id, | ||
- | JOB_HISTORY.job_id, | ||
- | EMPLOYEES.FIRST_NAME, | ||
- | EMPLOYEES.LAST_NAME, | ||
- | hire_date, | ||
- | start_date, | ||
- | end_date | ||
- | FROM EMPLOYEES , JOB_HISTORY | ||
- | WHERE ( (EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID) ) | ||
- | union | ||
- | select 'A', | ||
- | employees.employee_id, | ||
- | job_id, | ||
- | first_name, | ||
- | last_name, | ||
- | hire_date, | ||
- | null, | ||
- | null | ||
- | from employees | ||
- | ) fe | ||
- | --where last_name = 'Kochhar' | ||
- | order by last_name, first_name, start_date | ||
- | </code> | ||
- | |||
- | <code> | ||
- | select * from | ||
- | ( | ||
- | select employee_id, FIRST_NAME, EMPLOYEES.LAST_NAME from employees | ||
- | |||
- | minus | ||
- | |||
- | SELECT JOB_HISTORY.EMPLOYEE_ID id, EMPLOYEES.FIRST_NAME fn, EMPLOYEES.LAST_NAME ln | ||
- | FROM JOB_HISTORY , EMPLOYEES | ||
- | WHERE ( (EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID) ) | ||
- | ) | ||
- | --where id = 101 | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | select * from ( | ||
- | SELECT 0 sb, 'history', start_date, end_date, JOB_HISTORY.EMPLOYEE_ID id, EMPLOYEES.FIRST_NAME fn, EMPLOYEES.LAST_NAME ln, JOB_HISTORY.JOB_ID jid | ||
- | FROM JOB_HISTORY , EMPLOYEES | ||
- | WHERE (EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID) | ||
- | and JOB_HISTORY.EMPLOYEE_ID = :b_eid | ||
- | union | ||
- | select 1 sb, 'jetzt', null, sysdate, employee_id, FIRST_NAME, EMPLOYEES.LAST_NAME, JOB_ID from employees | ||
- | where employee_id = :b_eid | ||
- | ) order by sb, end_date | ||
- | |||
- | |||
- | select sb, h, start_date, end_date, id, fn, ln, jid, prior jid from ( | ||
- | SELECT 0 sb, 'history' h, start_date, end_date, JOB_HISTORY.EMPLOYEE_ID id, EMPLOYEES.FIRST_NAME fn, EMPLOYEES.LAST_NAME ln, JOB_HISTORY.JOB_ID jid | ||
- | FROM JOB_HISTORY , EMPLOYEES | ||
- | WHERE (EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID) | ||
- | and JOB_HISTORY.EMPLOYEE_ID = 101 | ||
- | union | ||
- | select 1 sb, 'jetzt', null, sysdate, employee_id, FIRST_NAME, EMPLOYEES.LAST_NAME, JOB_ID from employees | ||
- | where employee_id = 101 | ||
- | ) connect by PRIOR employee_id | ||
- | by sb, end_date | ||
- | </code> | ||
- | |||
- | <code> | ||
- | select employee_id as id, job_id, last_name, to_date(sysdate) from employees | ||
- | union | ||
- | select employee_id, job_id, to_char(null), to_date(end_date) from job_history | ||
- | order by 1,3,4 desc | ||
- | </code> | ||
- | |||
- | <code> | ||
- | select first_name, last_name from employees where employee_id in | ||
- | ( | ||
- | select employee_id | ||
- | from employees | ||
- | where job_id = 'IT_PROG' | ||
- | union | ||
- | select employee_id | ||
- | from job_history | ||
- | where job_id = 'IT_PROG' | ||
- | ) | ||
- | ------ | ||
- | |||
- | select first_name, last_name, stand, datum from employees, | ||
- | ( | ||
- | select employee_id, | ||
- | job_id, | ||
- | 'jetzt' stand, | ||
- | sysdate datum | ||
- | from employees | ||
- | where job_id = 'IT_PROG' | ||
- | union | ||
- | select employee_id, | ||
- | job_id, | ||
- | 'früher' stand, | ||
- | end_date datum | ||
- | from job_history | ||
- | where job_id = 'IT_PROG' | ||
- | ) history | ||
- | where history.employee_id = employees.employee_id | ||
- | </code> | ||
- | |||
- | <code> | ||
- | with history_union_employees as | ||
- | ( | ||
- | SELECT 1 h, EMPLOYEES.FIRST_NAME, | ||
- | EMPLOYEES.LAST_NAME, | ||
- | JOB_HISTORY.START_DATE, | ||
- | JOB_HISTORY.END_DATE, | ||
- | JOB_HISTORY.JOB_ID | ||
- | FROM JOB_HISTORY , EMPLOYEES | ||
- | WHERE ( (EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID) ) | ||
- | union | ||
- | select 2 h, EMPLOYEES.FIRST_NAME, | ||
- | EMPLOYEES.LAST_NAME, | ||
- | null, | ||
- | null, | ||
- | job_id | ||
- | from employees where employee_id in (select employee_id from job_history) | ||
- | ) | ||
- | select first_name, last_name, start_date, end_date, job_title from | ||
- | history_union_employees h join | ||
- | jobs j on h.job_id = j.job_id | ||
- | order by last_name, nvl(end_date,sysdate) | ||
- | |||
- | </code> | ||
- | |||
- | <code> | ||
- | select status, | ||
- | job_id, | ||
- | first_name, | ||
- | last_name, | ||
- | coalesce(start_date, | ||
- | (select max(end_date)+1 | ||
- | from job_history where employee_id = fe.employee_id), | ||
- | hire_date) start_date, | ||
- | end_date | ||
- | from ( | ||
- | SELECT 'H' status, | ||
- | employees.employee_id, | ||
- | JOB_HISTORY.job_id, | ||
- | EMPLOYEES.FIRST_NAME, | ||
- | EMPLOYEES.LAST_NAME, | ||
- | hire_date, | ||
- | start_date, | ||
- | end_date | ||
- | FROM EMPLOYEES , JOB_HISTORY | ||
- | WHERE ( (EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID) ) | ||
- | union | ||
- | select 'A', | ||
- | employees.employee_id, | ||
- | job_id, | ||
- | first_name, | ||
- | last_name, | ||
- | hire_date, | ||
- | null, | ||
- | null | ||
- | from employees | ||
- | ) fe | ||
- | --where last_name = 'Kochhar' | ||
- | order by last_name, first_name, end_date | ||
- | </code> | ||