Jump to content

SQL MySQL - Funções e Procedimentos


Sophia_Fuoco

Recommended Posts

Boa tarde,

Necessito de responder a 3 questões de um exercício através de funções ou procedimentos e não consigo, dá sempre erros. Seria possível ajudarem-me pf? Obrigada.

create table venda (
  idVenda int not null, 
  dataVenda timestamp, 
  valorFaturado float, 
  idCliente int not null, 
  primary key(idVenda), 
  constraint FK_idCliente foreign key (idCliente) references cliente (idCliente) on delete no action on update no action ); 
  
create table artigo (
  idArtigo int not null, 
  nomeArtigo varchar(255), 
  qtdArtigo int(3), 
  precoArtigo float, 
  primary key(idArtigo));

Questões:

-- a. Obtenha a faturação anual por ano.

-- b. Obtenha a faturação total de um dado ano.

-- c. Coloque a quantidade dos artigos todos a zero.

Link to comment
Share on other sites

Sim, é possível obteres ajuda, o que não vais obter é que façam os exercícios por ti.

Coloca as tuas questões, dúvidas, erros que estejas a obter, etc. de forma clara e de certo alguém te ajudará.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

12 horas atrás, jsWizard disse:

A) B) procura na documentação por "GROUP BY" e "SUM"

C) o mesmo.. procura por "UPDATE ... SET ... WHERE ... "

gosto especialmente desta frase:

😄 😄

Não percebi o smile..

 

Entretanto e com as dicas, já fui fazendo como sabia, mas continua a falhar alguma coisa...🤔

 

-- a. Obtenha a faturação anual por ano.
 

delimiter $$
create function faturacao_Anual_por_Ano (x int, y int)
returns decimal deterministic
begin
declare faturPorAno decimal(10,2);
set faturPorAno = 0;
select sum(valorFaturado) 
into faturAno
from venda
where year(dataVenda) = X
group by year(venda.dataVenda);
return faturAno;
end $$
delimiter;

e fiz a seguinte que a meu ver, é muito semelhante à primeira, não sei se estou a pensar bem..

-- b. Obtenha a faturação total de um dado ano.

delimiter $$
create function faturacao_de_um_Ano (x int)
returns decimal deterministic
begin
declare faturAno decimal(10,2);
set faturAno = 0;
select sum(valorFaturado) 
into faturAno
from venda
where year(dataVenda) = X
group by year(venda.dataVenda);
return faturAno;
end $$
delimiter;

select  faturacao_de_um_Ano(2020);

Obrigada.

Link to comment
Share on other sites

11 horas atrás, jsWizard disse:

A)

select year(v.dataVenda) ano, sum(v.valorFaturado) total_por_ano
from venda v
group by year(v.dataVenda)
order by year(v.dataVenda);

B)

o mesmo que A) mas com um filtro por um determinado ano:

where year(v.dataVenda) = 2022 -- por exemplo

C)

update artigo set qtdArtigo = 0;

 

Muito Obrigada 🙂 bem haja

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.