-
Notifications
You must be signed in to change notification settings - Fork 1
/
functions.sql
53 lines (48 loc) · 1.79 KB
/
functions.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use MedicinaDesporto;
#Quantos recursos gastou uma clinica entre duas datas
DELIMITER $$
CREATE FUNCTION recursosGastos (cod_clinica int, di date, df date) returns int deterministic
begin
declare num int;
set num = (select count(*) from Recurso join TesteClinico on TesteClinico.id_teste = Recurso.id_teste
where TesteClinico.cod_clinica = cod_clinica and TesteClinico.data between di and df);
return num;
end $$
DELIMITER ;
#Hora em que há mais testes numa clínica (em média)
DELIMITER $$
CREATE FUNCTION horaMaisTestes (cod_clinica int) returns int deterministic
begin
declare num int;
set num = (select round(sum(hour(TesteClinico.hora))/count(*)) from TesteClinico where TesteClinico.cod_clinica = cod_clinica);
return num;
end $$
DELIMITER ;
#Quantos funcionários com um determinado cargo tem uma clínica
DELIMITER $$
CREATE FUNCTION quantosFuncionariosCargo (cod_clinica int, cargo varchar(45)) returns int deterministic
begin
declare num int;
set num = (select count(*) from Staff where Staff.cargo = cargo and Staff.id_staff in
(select Staff_id_Staff from Staff_Clinica where Clinica_cod_clinica = cod_clinica));
return num;
end $$
DELIMITER ;
#Quantos anos de serviço tem um determinado funcionário
DELIMITER $$
CREATE FUNCTION quantosAnosServico (id_staff int) returns int deterministic
begin
declare num int;
set num = (select year(now())-year(data_ini_servico) from Staff where Staff.id_staff = id_staff);
return num;
end $$
DELIMITER ;
#Quanto custa realizar um teste numa clínica (em média)
DELIMITER $$
CREATE FUNCTION quantoCustaTeste (cod_clinica int) returns double deterministic
begin
declare num double;
set num = (select round(sum(TesteClinico.preco)/count(*),2) from TesteClinico where TesteClinico.cod_clinica = cod_clinica);
return num;
end $$
DELIMITER ;