Jump to content
luizfabianochaves

Como fazer uma cálculo de média ?

Recommended Posts

Boa tarde..

Estou com um problema aqui, preciso fazer um calculo mas não tenho ideia de como fazer... vou ver se consigo explicar..

na empresa temos 60 representantes cada um tem uma meta de vendas diferente a ser cumprida mensalmente, quando ele não bate a meta, o saldo tem que ser diluíido nos meses seguintes..

 

exemplo: representante 01 teria que vender 1.000 em janeiro. vendeu 900 esses 100 reais que faltaram, teriam que ir pra os outros meses.. 100/11=9,09 então a meta dos outros meses seria de 1009,90.. conseguiram entender?

Share this post


Link to post
Share on other sites

Sim , teria de ser criada tabelas do tipo "conta corrente"

 

Uma tabela de lançamento das diferenças mensais

e

um campo de saldo mensal.

 

Publique o modelo atual

 

Share this post


Link to post
Share on other sites

Não seria simples de responder em um tópico , um mini-projeto quase.

Share this post


Link to post
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

  • Similar Content

    • By Priscila1307
      CREATE TABLE CLIENTE( Idcliente int, nome varchar(60), dtnascimento date, cpf varchar(11), CONSTRAINT pk_cliente PRIMARY KEY (Idcliente) ); CREATE TABLE PEDIDO( Idpedido int, Idcliente int, datapedido date, vltotal decimal(10,2), CONSTRAINT pk_pedido PRIMARY KEY (Idpedido), CONSTRAINT fk_pedido_cliente FOREIGN KEY (Idcliente) REFERENCES CLIENTE(Idcliente) ); CREATE TABLE PRODUTO( Idproduto int, descricao varchar(100), quantidade int, CONSTRAINT pk_produto PRIMARY KEY (Idproduto) ); CREATE TABLE ITEMPEDIDO( Idpedido int, Nritem int, valor decimal(10,2), quantidade int, Idproduto int, CONSTRAINT pk_itempedido PRIMARY KEY (Idpedido, Nritem), CONSTRAINT fk_Idpedido FOREIGN KEY (Idpedido) REFERENCES PEDIDO (Idpedido), CONSTRAINT fk_itempedido_produto FOREIGN KEY (Idproduto) REFERENCES PRODUTO (Idproduto) ); CREATE TABLE LOG( Idlog int, data date, descricao varchar(255), CONSTRAINT pk_log PRIMARY KEY (Idlog) ); INSERT INTO CLIENTE VALUES (1, 'Hugo Batista', TO_DATE('05/02/1990', 'DD/MM/YYYY'), '51898608253'); INSERT INTO CLIENTE VALUES (2, 'José Antonio', TO_DATE('02/05/1985', 'DD/MM/YYYY'), '51144722241'); INSERT INTO CLIENTE VALUES (3, 'João Carlos', TO_DATE('03/05/1993', 'DD/MM/YYYY'), '84882273292'); INSERT INTO CLIENTE VALUES (4, 'Edivaldo Santana', TO_DATE('01/06/2000', 'DD/MM/YYYY'), '30609426176'); INSERT INTO CLIENTE VALUES (5, 'Cristina Oliveira', TO_DATE('16/08/1999', 'DD/MM/YYYY'), '56313586700'); INSERT INTO CLIENTE VALUES (6, 'Artur da Silva', TO_DATE('06/05/2001', 'DD/MM/YYYY'), '67491246583'); INSERT INTO CLIENTE VALUES (7, 'Adrina Domingues', TO_DATE('01/02/1972', 'DD/MM/YYYY'), '22044617250'); INSERT INTO PRODUTO VALUES (1, 'SAMSUNG J7 - PRIME', 10); INSERT INTO PRODUTO VALUES (2, 'SAMSUNG J5 - PRIME', 10); INSERT INTO PRODUTO VALUES (3, 'IPHONE X', 10); INSERT INTO PRODUTO VALUES (4, 'MOTO G 5S', 10); INSERT INTO PRODUTO VALUES (5, 'IPHONE 6S', 10); INSERT INTO PEDIDO VALUES (1, 4, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1400.99); INSERT INTO ITEMPEDIDO VALUES (1, 1, 800.99, 1, 1); INSERT INTO ITEMPEDIDO VALUES (1, 2, 600.00, 1, 2); INSERT INTO PEDIDO VALUES (2, 2, TO_DATE('17/03/2018', 'DD/MM/YYYY'), 1349.50); INSERT INTO ITEMPEDIDO VALUES (2, 1, 749.50, 1, 4); INSERT INTO ITEMPEDIDO VALUES (2, 2, 600.00, 1, 2); INSERT INTO PEDIDO VALUES (3, 1, TO_DATE('20/03/2018', 'DD/MM/YYYY'), 2590.10); INSERT INTO ITEMPEDIDO VALUES (3, 1, 1800.71, 1, 5); INSERT INTO ITEMPEDIDO VALUES (3, 2, 789.39, 1, 4); INSERT INTO PEDIDO VALUES (4, 5, TO_DATE('21/03/2018', 'DD/MM/YYYY'), 2590.10); INSERT INTO ITEMPEDIDO VALUES (4, 1, 5099.00, 1, 3); INSERT INTO PEDIDO VALUES (5, 7, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1800.00); INSERT INTO ITEMPEDIDO VALUES (5, 1, 600.00, 3, 2); "Crie um select que exibe quais são os três PRODUTOS com a maior quantidade de PEDIDOS. Exiba o nome e o código do produto"
       
      Oi pessoal. por favor preciso da ajuda de vocês . 
      Eu queria criar um SELECT que exiba os três PRODUTOS com a maior quantidade de PEDIDOS.
      Retornando nome do produto ( PRODUTO.DESCRICAO )  e  o código dele ( PRODUTO.IDPRODUTO )
       
      Eu tentei das seguintes formas mas não consegui . estou novinha ainda em oracle
       
       
      SELECT PRODUTO.DESCRICAO, PRODUTO.IDPRODUTO, ITEMPEDIDO.QUANTIDADE FROM ITEMPEDIDO, PEDIDO, PRODUTO WHERE ITEMPEDIDO.IDPEDIDO = PEDIDO.IDPEDIDO AND PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO GROUP BY IDPRODUTO  
      neste código só roda sem erro se eu tirar o GROUP BY IDPRODUTO.  Mas não gera o resultado esperado 

       
      SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO FROM ITEMPEDIDO GROUP BY IDPRODUTO ORDER BY VENDIDO DESC  
       
      Aqui eu até consegui chegar perto mas não consegui acrescentar o nome do produto ( que é PRODUTO.DESCRICAO) e o produto com idproduto 2 ( que é o J5 ) não são só 3 vendidos. SÃO 5 !!! ai ai ai ai
       
      ....e apos muita batalha eu consegui fazer isso ... que tbm ainda não é o ideal
       
      SELECT * FROM (SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO FROM ITEMPEDIDO GROUP BY IDPRODUTO ORDER BY VENDIDO DESC) WHERE ROWNUM <4  

       
      ... demorei horrores pra fazer esse WHERE ROWNUM <4  rodar sem erro... pois é pessoal. só historia triste ! kkkkk
       
       
      Agora estou tentando esse aqui mas não terminei 
       
      SELECT PRODUTO.DESCRICAO AS NOME, ITEMPEDIDO.IDPRODUTO FROM PRODUTO, ITEMPEDIDO WHERE PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO
       
       
      acabei parando no meio do caminho e decidi recorrer ao imasters ! 
       
      vou continuar tentando ... sera que consigo antes de alguem aparecer aqui ? rsrsrs
       
      obrigada ! boa sorte pessoal.
       
       
       
      ah ! já ia esquecendo estou usando o livesql.oracle.com
       
      e vou deixar aqui tbm a consulta das tabelas 
       
       

    • By gamesmax2
      Boa noite,
      Pessoal estou com uma dificuldade no MYSQL, estou querendo obter dados de um cadastro caso ele tenha preenchido todos os Campos, tentei usar o Group by mas não tive sucesso.
       
      Minha tabela e a seguinte:
       
      Nome.              Pedido.            Status
      Daniel.              9955.                 Ok
      Daniel.              9954                  Ok
      Rafael.              9940                  Ok
      Rafael.              9941.                 Aberto
      Rafael.              9942.                 Ok
      Rodrigo.            9961.                 Ok
      Rodrigo.            9962.                 Ok
       
       
      Meu objetivo e puxar os nomes que estão com todos o pedidos relacionado em ok, no caso o Rafael não pode aparece pois ele tem um pedido Aberto, porém não conseguir fazer isso, pessoal peco a ajuda de VCS muito o obrigado.
       
      tentei isso aqui: SELECT nome, pedido, status FROM `cadastros` GROUP BY pedido, nome having status = 'Ok'
    • By gamesmax2
      Boa tarde,
      Pessoal estou com uma dificuldade no MYSQL, estou querendo obter dados de um cadastro caso ele tenha preenchido todos os Campos, tentei usar o Group by mas não tive sucesso.
       
      Minha tabela e a seguinte:
       
      Nome.              Pedido.            Status
      Daniel.              9955.                 Ok
      Daniel.              9954                  Ok
      Rafael.              9940                  Ok
      Rafael.              9941.                 Aberto
      Rafael.              9942.                 Ok
      Rodrigo.            9961.                 Ok
      Rodrigo.            9962.                 Ok
       
       
      Meu objetivo e puxar os nomes que estão com todos o pedidos relacionado em ok, no caso o Rafael não pode aparece pois ele tem um pedido Aberto, porém não conseguir fazer isso, pessoal peco a ajuda de VCS muito o obrigado.
       
      tentei isso aqui: SELECT nome, pedido, status FROM `cadastros` GROUP BY pedido, nome ORDER BY having status = 'Ok'  
       
    • By Thiago Btos
      Bom dia pessoal.
       
      Estou com uma dúvida na estruturação do select.
      Tenho um relatório que está extraindo já informações corretamente, com base no período gerado (inicial e final)
      Exemplo de como está hoje:
      SELECT D.CATEGORIA, SUM(D.VALOR) AS VALOR_VENDA, D.DATA AS (MES_ANO) FROM DUAL D WHERE D.DATA BETWEEN '20210501' AND '20210731' GROUP BY D.CATEGORIA, D.DATA Retornando:
      Categoria | Valor_venda     | Mes_Ano
      1                |     1000,00         | 05/2021
      1                |     2000,00         | 06/2021
      1                |       800,00         | 07/2021
      2                |      500,00          | 05/2021
      2                |      200,00          | 07/2021
      2                |      700,00          | 06/2021
       
      Até ai está tranquilo.
      Porém foi solicitado para adicionar uma coluna YTD (Year to data - acumulado do ano) agrupando o valor total da venda do ano do filtro.
      Então se foi colocado uma data do período Jan/2020 a Mar/2020, essa nova coluna tem que pegar as vendas do ano inteiro de 2020
       
      E precisa me retornar assim:
       
      Categoria | Valor_venda     | Mes_Ano  |  YTD
      1                |     1000,00         | 05/2021   |  15000,00
      1                |     2000,00         | 06/2021   |  15000,00
      1                |       800,00         | 07/2021   |  15000,00
      2                |      500,00          | 05/2021   |  8000,00
      2                |      200,00          | 07/2021   |  8000,00
      2                |      700,00          | 06/2021   |  8000,00
       
      (Os valores de 15000 e 8000 seria a soma do ano inteiro)
       
      O que consegui pensar seria um subselect que tem o where com data do ano, porém nesse caso retorno mais de um resultado no subselect, não dando para usar...
       
      Qual seria a alternativa que tenho?
       
    • By henriquers
      Boa Tarde, a todos
       
      Estou fazendo um relatório que traz em uma pagina web um relatório para ser impresso, mas estou tendo um problema de desempenho para trazer os dados para a pagina web.
      Tenho uma consulta onde traz todos os ID dos funcionários e salvo cada um deste resultado em um Array. E com esses IDs salvo em um array eu faço um loop e dentro faço um select filtrando cada ID de funcionário onde neste select traz as informações de cada um dos funcionário, mas estou com problema nesse select dentro do loop, pois demora quase 2 min para finalizar todas as consultas e trazer as informações na pagina são mais de 130 consulta que faz.
      Pensei em alguns modos de salvar os os todos dados em array com a penas um select mas não consigo filtra por ID.
      $selRE = "SELECT * FROM(SELECT DISTINCT RE, NOME FROM ENG_REL_EPIS WHERE to_date(DATA,'DD/MM/YY') BETWEEN to_date('$dataIni','DD-MM-YY') AND to_date('$dataFim','DD-MM-YY') ) ORDER BY NOME ASC "; $parse2 = oci_parse($conn,$selRE); oci_execute($parse2); while($fetch2=oci_fetch_assoc($parse2)) { $re2[] = $fetch2['RE']; } $cnt = count($re2); $i = 0; while($i < $cnt ){ $select = "SELECT DISTINCT CA,PRODUTO,DESCRICAO,DATA,RE,NOME,QTD FROM ENG_REL_EPIS WHERE to_date(DATA,'DD/MM/YY') BETWEEN to_date('$dataIni','DD-MM-YY') AND to_date('$dataFim','DD-MM-YY') AND RE ='$re2[$i]' ORDER BY DATA ASC"; // echo $select."<br>"; $parse=oci_parse($conn,$select); oci_execute($parse); $fetch=oci_fetch_array($parse); echo " <div class='tamanho'> <br> <!-- ============== BEGIN CABEÇALHO ==================--> <div class='row borda'> <div class='col-sm-4'> <img src='./../../img/logo_p.png' alt='some text' class='logo'> </div> <div class='col-sm borda_esquerda titulo2'> Ficha de Registro de Entrega de Equipamentos de Proteção Individual </div> </div> <br> <div class='row borda titulo'> <div class='col'> PERÍODO: $dataIni a $dataFim </div> </div> <br> <div class='row borda_esquerda_direita_top titulo'> <div class='col'> PRODUTOS </div> </div> <div class='row titulo'> <div class='col-2 borda_top_esquerda'> Data </div> <div class='col-2 borda_top_esquerda'> Código </div> <div class='col-1 borda_top_esquerda'> Qtd </div> <div class='col-1 borda_top_esquerda'> CA </div> <div class='col borda_esquerda_direita_top'> Descrição </div> </div> "; do{ $DATA = date('d/m/Y', strtotime($fetch["DATA"])); $PRODUTO = $fetch["PRODUTO"]; $QTD = $fetch["QTD"]; $CA = $fetch["CA"]; $DESCRICAO = mb_strimwidth($fetch["DESCRICAO"], 0, 48, "..."); $RE = $fetch["RE"]; $NOME = $fetch["NOME"]; echo " <div class='row conteudo'> <div class='col-2 borda_top_esquerda'> $DATA </div> <div class='col-2 borda_top_esquerda'> $PRODUTO </div> <div class='col-1 borda_top_esquerda'> $QTD </div> <div class='col-1 borda_top_esquerda'> $CA </div> <div class='col borda_esquerda_direita_top'> $DESCRICAO </div> </div> "; }while($fetch=oci_fetch_array($parse)); echo " <div class='row borda_top'> &nbsp; </div> <div class='row borda_esquerda_direita_top'> <div class='texto'> Eu $NOME, R.E. $RE. De acordo com as normas regulamentadoras (N.R.) 1.7 e 6.1, declaro e confirmo que recebi da Engemet Metalurgia e Comercio Ltda os Equipamentos de Proteção Individual necessários à minha função, discriminados e assinados por mim, abaixo. Afirmo ainda ter ciência da obrigatoriedade do bom uso e conservação destes, bem como a instrução devida para o uso correto. </div> <br> </div> <div class='row '> <div class='col borda_esquerda_direita_baixo'> <div class='titulo'> $data <br> <br> </div> </div> </div> <div class='row'> <div class='col'> <div class='titulo'> <br><br><br> Assinatura:_____________________________________________________________ </div> </div> </div> </div> <p style='page-break-before:always'></p> "; $i++; oci_free_statement($parse); }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.