TrabalhoBancoIIResolvido
417 palavras
2 páginas
2 - Faça uma procedure chamada MAIOR_VENDA que receba como parâmetros de entrada uma data inicial e uma data final e retorne num parâmetro de saída (do tipo refcursor) o código, a descrição e o valor total de venda do(s) produto(s) que apresentou (aram) o maior valor total de venda no período. create or replace PROCEDURE MAIOR_VENDA( DATAINICIAL IN VENDA.VENDA_DATA%TYPE, DATAFINAL IN VENDA.VENDA_DATA%TYPE,
RETORNO OUT PK_TIPOS.TP_REFCURSOR) AS BEGIN OPEN RETORNO FOR select P.SUB_CODIGO,P.PROD_DESCRICAO,SUM(I.ITENSV_PRECO * I.ITENSV_QNT) AS TOTAL FROM ITENSDEVENDA I,PRODUTO P,VENDA V WHERE P.SUB_CODIGO = I.SUB_CODIGO AND I.VENDA_CODIGO = V.VENDA_CODIGO AND V.VENDA_DATA BETWEEN DATAINICIAL and DATAFINAL GROUP BY P.SUB_CODIGO,I.SUB_CODIGO,P.PROD_DESCRICAO ORDER BY TOTAL DESC; END;
3 - Faça uma procedure que calcule os estoques máximo, mínimo e de segurança de cada substância e grave os valores na respectiva tabela. create or replace procedure CALCULA_ESTOQUE
(MESES IN INT)
IS
CURSOR CUR IS select SUB_CODIGO, sum(ITENSDANOTA.ITENSN_QUANTIDADE)/MESES AS MEDIA from ITENSDANOTA inner join NOTAFISCAL on ITENSDANOTA.NOTA_CODIGO = NOTAFISCAL.NOTA_CODIGO where trunc(NOTAFISCAL.NOTA_DTVENDA) >= add_months(sysdate,-MESES) and trunc(NOTAFISCAL.NOTA_DTVENDA) <= sysdate group by ITENSDANOTA.SUB_CODIGO; BEGIN FOR REG IN CUR LOOP UPDATE SUBSTANCIA SET SUB_QNTMAXIMO = REG.MEDIA*30, SUB_QNTMINIMO = REG.MEDIA*20, SUB_QNTATUAL=REG.MEDIA*10 where SUB_CODIGO = REG.SUB_CODIGO; END LOOP;
COMMIT;
END;
4 - Faça uma function chamada RET_TOTPAGO que receba como parâmetros de entrada uma data inicial, uma data final e um código de pessoa (cliente) e retorne o valor total de notas fiscais com pagamento à vista desta pessoa no período informado.
create or replace FUNCTION RET_TOTPAGO
(F_DATAINICIAL IN VENDA.VENDA_DATA%TYPE, F_DATAFINAL IN