akshay_DBA Ответов: 1

Я хочу, чтобы процедура взяла сумму n_o_d из первой таблицы и вычла эту сумму из столбца tc


SQL> desc sick_leave;
Имя Нулевое? Тип
----------------------------------------- -------- ----------------------------
ИДЕНТИФИКАТОР EMP_ID VARCHAR2(20)
ДАТА FROM_D
ДАТА TO_D
КОЛИЧЕСТВО N_O_D(2)
ОПИСАНИЕ VARCHAR2(100)
СТАТУС VARCHAR2(20)
ТИП VARCHAR2(20)

SQL> desc leave_summary
Имя Нулевое? Тип
----------------------------------------- -------- ----------------------------
ИДЕНТИФИКАТОР EMP_ID VARCHAR2(20)
НОМЕР ТС(2)
КОЛИЧЕСТВО ТС(2)
RC-НОМЕР(2)
НОМЕР RS(2)
я хочу, чтобы процедура взяла сумму n_o_d из первой таблицы и вычла эту сумму из столбца tc


пожалуйста, помогите мне

Что я уже пробовал:

создать процедуру leavedemo (empid int)
2 как
3 Начните
4 Выберите emp_id,(выбрать сумма(ТС) от leave_summary)-(выбрать сумма(N_O_D) от sick_leave) как RS
5 из LEAVE_summary
6 группа по emp_id;
7 конец;
8 /

1 Ответов

Рейтинг:
0

Santosh kumar Pithani

CREATE PROCEDURE leavedemo (@empid int)
 AS
 BEGIN
 SELECT LEAVE_summary.EMP_ID, sum(sick_leave.N_O_D) AS N_O_D,
       sum(LEAVE_summary.tc)- sum(sick_leave.N_O_D) AS Remaining_Leaves
    FROM LEAVE_summary INNER JOIN sick_leave ON(LEAVE_summary.EMP_ID=sick_leave.EMP_ID)
         WHERE  LEAVE_summary.emp_id=@empid
           GROUP BY LEAVE_summary.emp_id;
 END;


akshay_DBA

SQL> выберите LEAVE_summary.Идентификатор emp_id, сумма(sick_leave.N_O_D) как N_O_D,сумма(LEAVE_summary.ТС)- сумма(sick_leave.N_O_D) как Remaining_Leaves
2 FROM LEAVE_summary INNER JOIN sick_leave ON(LEAVE_summary.Идентификатор emp_id=sick_leave.Идентификатор emp_id)
3 где LEAVE_summary.emp_id=@empid
4 группа по LEAVE_summary.emp_id;
Где именно LEAVE_summary.emp_id=@empid
*
это дает ошибку отсутствует exprssn

Santosh kumar Pithani

Вы должны передать EMP_ID в качестве параметра в хранимой процедуре либо объявить ex:-"where
LEAVE_summary.emp_id=1246"