0

私は2つのテーブルを持っています

1.従業員

EMP_NAME,

EMP_CODE

2.休暇

EMP_NAME,

EMP_CODE,

VACATION_START_DATE-->date type

VACATION_END_DATE-->date type,

私の質問はEMP_NAME、今日が間にないテーブル1(従業員)VACATION_START_DATEVACATION_END_DATEテーブル2(休暇)から取得するためのクエリ方法です。

4

2 に答える 2

0

これを試してください: 2 つのテーブル間の関係emp_nameだけでなく、vacations テーブルもないと仮定します。emp_codeしたがって、s を使用できますjoin

SQLFIDDLE デモ

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 |
于 2013-01-19T20:18:10.120 に答える
0

「今日」が変数なのかシステム日付なのかわからないので、次のコードを変更する必要があるかもしれませんが、うまくいくと思います:

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)
于 2013-01-19T20:18:45.177 に答える