データを含む2 つのテーブルがありLeaves, Attendanceatd
ます。
ListofDates
これらの 2 つのテーブルとは異なるものを表示する必要があり、これらの 2 つのテーブルから、両方のテーブルの Date 列employeeid
で、Leave table approvalstatus='Approved' および startdate / enddate period 期間という条件が設定されています。
テーブル スキーマ: SQL FIDDLE
create table Leaves(idemp_lv int,leavedate Datetime, approvalstatus varchar(100))
insert into Leaves values (1,'2013-04-22 00:00:00.000','Approved');
insert into Leaves values (2,'2013-04-21 00:00:00.000','Approved');
insert into Leaves values(3,'2013-04-26 00:00:00.000','Approved');
insert into Leaves values(1,'2013-04-21 00:00:00.000','Pending');
insert into Leaves values(3,'2013-04-02 00:00:00.000','Pending');
insert into Leaves values(1,'2013-04-19 00:00:00.000','Approved');
create table Attendanceatd(idemp_at int,absentdate Datetime)
insert into Attendanceatd values(1,'2013-04-19 00:00:00.000');
insert into Attendanceatd values(3,'2013-04-02 00:00:00.000');
insert into Attendanceatd values(1,'2013-04-15 00:00:00.000');
望ましい出力:
Empid ListofDate
1 2013-04-22 00:00:00.000
1 2013-04-19 00:00:00.000
1 2013-04-15 00:00:00.000
2 2013-04-21 00:00:00.000
3 2013-04-26 00:00:00.000
3 2013-04-02 00:00:00.000
現在、私はこれを試しています:
select ListOfDates
from
(
select leavedate as ListOfDates from leaves where approvalstatus='Approved' and leavedate >='20130302' and leavedate <'20130501'
union
select absentdate as ListOfDates from Attendanceatd where absentdate >='20130302' and absentdate <'20130501'
)t1
group by ListOfDates
ListOfDatesと一緒にemployeeIdを取得できません