我有兩個表疑慮查詢條件
1.Employee
EMP_NAME,
EMP_CODE
2.Vacations
EMP_NAME,
EMP_CODE,
VACATION_START_DATE-->date type
VACATION_END_DATE-->date type,
我的問題是如何查詢得到EMP_NAME
從表1(員工),其中今天不在VACATION_START_DATE
和之間from table2(Vacations)..
我有兩個表疑慮查詢條件
1.Employee
EMP_NAME,
EMP_CODE
2.Vacations
EMP_NAME,
EMP_CODE,
VACATION_START_DATE-->date type
VACATION_END_DATE-->date type,
我的問題是如何查詢得到EMP_NAME
從表1(員工),其中今天不在VACATION_START_DATE
和之間from table2(Vacations)..
請嘗試這個:假設您沒有emp_name
休假表..以及emp_code
作爲兩個表之間的關係。所以你可以使用join
s。
select e.emp_code, e.emp_name,
v.start_date, v.end_Date
from emp e
inner join
vacation v
on e.emp_code = v.emp_code
where not (Now() between v.start_date
and v.end_date)
;
| EMP_CODE | EMP_NAME | START_DATE | END_DATE |
-------------------------------------------------------------------------------------------
| 1 | john | December, 10 2012 00:00:00+0000 | December, 20 2012 00:00:00+0000 |
| 2 | kate | December, 20 2012 00:00:00+0000 | December, 30 2012 00:00:00+0000 |
| 3 | tim | December, 24 2012 00:00:00+0000 | January, 01 2013 00:00:00+0000 |
| 1 | john | January, 01 2013 00:00:00+0000 | January, 08 2013 00:00:00+0000 |
不知道你是否意味着「今天」是一個變量或系統日期,所以下面的代碼可能需要修改,但我認爲它可能工作:
SELECT
EMP_NAME
FROM
EMPLOYEE
WHERE
NOT EXISTS (SELECT * FROM VACATIONS WHERE EMP_NAME = EMPLOYEE.EMP_NAME AND
VACATIONS.VACATION_START_DATE >= Today AND
VACATIONS.VACATION_END_DATE <= Today)
emp名稱和代碼如何關聯表格eg如果emp_code在兩個emp_name是相同的? – Mark
@Mark我發佈了答案,假設它是一個錯字... :) – bonCodigo