2016-05-16 4 views
-1

У меня есть таблица, в которой записывается ежедневная посещаемость.группа по месяцам для листа обслуживания

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, который дает ежемесячно & ежегодно группирование идентификатор сотрудника и статус? статус имеет такие значения, как настоящий, отпуск по болезни и т. д. Например: не найти больничных листов, взятых employee_id = 1001 в каждый месяц 2015 года?

+0

Редактировать Ваши вопросы и предоставить образец данные и желаемые результаты. –

ответ

0

Вы можете попробовать ниже запроса:

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 
Смежные вопросы