按出勤率分组 sheet
group by month for attendance sheet
我有一个 table 记录每天的出勤率。
CREATE TABLE "DAILY_ATTENDANCE" (
"SERIAL_NO" NUMBER(10,0),
"EMPLOYEE_ID" NUMBER(4,0),
"FIRST_NAME" VARCHAR2(100),
"MIDDLE_NAME" VARCHAR2(100),
"LAST_NAME" VARCHAR2(100),
"ATTENDANCE_DATE" DATE,
"STATUS" VARCHAR2(100) DEFAULT 'PRESENT',
"MONTH" VARCHAR2(100),
"YEAR" VARCHAR2(100),
CONSTRAINT "DAILY_ATTENDANCE_PK" PRIMARY KEY ("SERIAL_NO") ENABLE,
CONSTRAINT "DAILY_ATTENDANCE_UK1" UNIQUE ("EMPLOYEE_ID", "ATTENDANCE_DATE")
ENABLE
);
create or replace trigger "DAILY_ATTENDANCE_T5"
BEFORE insert or update on "DAILY_ATTENDANCE"
for each row
begin
:new.month:= to_char(:new.ATTENDANCE_DATE, 'month') ;
:new.year:= to_char(:new.ATTENDANCE_DATE, 'YYYY') ;
end;
我如何编写一个简单的 sql 语句来给出员工 ID 和状态的月度和年度分组? status 有 present、sick leave 等值。
例:求employee_id=1001在2015年的每个月请病假的次数有多少?
您可以尝试以下查询:
select a.year,a.month,a.employeeId,count(*)
from
(select * from DAILY_ATTENDANCE where status ='sickleave')a
group by a.year,a.month,a.employeeId
我有一个 table 记录每天的出勤率。
CREATE TABLE "DAILY_ATTENDANCE" (
"SERIAL_NO" NUMBER(10,0),
"EMPLOYEE_ID" NUMBER(4,0),
"FIRST_NAME" VARCHAR2(100),
"MIDDLE_NAME" VARCHAR2(100),
"LAST_NAME" VARCHAR2(100),
"ATTENDANCE_DATE" DATE,
"STATUS" VARCHAR2(100) DEFAULT 'PRESENT',
"MONTH" VARCHAR2(100),
"YEAR" VARCHAR2(100),
CONSTRAINT "DAILY_ATTENDANCE_PK" PRIMARY KEY ("SERIAL_NO") ENABLE,
CONSTRAINT "DAILY_ATTENDANCE_UK1" UNIQUE ("EMPLOYEE_ID", "ATTENDANCE_DATE")
ENABLE
);
create or replace trigger "DAILY_ATTENDANCE_T5"
BEFORE insert or update on "DAILY_ATTENDANCE"
for each row
begin
:new.month:= to_char(:new.ATTENDANCE_DATE, 'month') ;
:new.year:= to_char(:new.ATTENDANCE_DATE, 'YYYY') ;
end;
我如何编写一个简单的 sql 语句来给出员工 ID 和状态的月度和年度分组? status 有 present、sick leave 等值。 例:求employee_id=1001在2015年的每个月请病假的次数有多少?
您可以尝试以下查询:
select a.year,a.month,a.employeeId,count(*)
from
(select * from DAILY_ATTENDANCE where status ='sickleave')a
group by a.year,a.month,a.employeeId