Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 3 anos atrás por Avatar de MottaMotta.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #151594
    Avatar de ElizaEliza
    Participante

      Bom dia pessoal,

      tenho uma tabela de % de comissão, com os campos:

      data                    % de comissão

      20/12/2021          3

      28/12/2020          5

      05/01/2021          7

      06/01/2021         4

      Tenho a tabela VENDAS, que tem as vendas realizadas.

      Campos:   data da venda, cod. vendedor, cliente, valor venda

       

      Consultar:

      através da tabela VENDAS,  buscar o % de comissão a ser pago.

      Exemplos:

      1-  uma venda do dia 05/01/2021,  a comissão será 7%.  Existe comissão lançada nesta data.

      2- uma venda do dia 04/01/2021,  a comissão será 5%.    É preciso buscar a data anterior mais próxima à data da venda, logo será 28/12/2020.

      Qual seria solução mais otimizada para fazer esse SELECT   vendas x comissão?

       

       

       

      #151624
      Avatar de MottaMotta
      Participante

        Eliza ,

        Um modelo ruim na minha opinião , o melhor seria ter um par
        inicio e fim de vigência
        um simples between resolveria.

        daria para garantir a integridade por trigger mas está fora do escopo.

        mas …

        --maior data encontrada
        
        select max(c1.data_comissao)
        from comissoes c1
        where (c1.data_comissao) <= <data_parametro>)
        
        --dados desta data
        select c2.comissao
        from comissoes c2
        where c2.data_comissao = (select max(c1.data_comissao)
        from comissoes c1
        where (c1.data_comissao) <= <data_parametro>))

        Isto poderia estar em uma FUNCTION que receberia a data
        e retornaria a comissao

         

        Mas …
        1) Eu mudaria o modelo
        2) Não usaria um campo de nome “data” pois é palavra reservada

        #151670
        Avatar de ElizaEliza
        Participante

          bom dia Motta,

          Obrigada pelo retorno e pelas dicas.

          Pensei nesse select tb, acho que é o mais viável.

          Não vamos colocar data inicial e final porque o pessoal quer seguir o padrão do sistema , que está funcionando. Todas as validades só tem uma data, que é a inicial.

          Achei legal a ideia da FUNCTION.

          Campo “Data”, foi só pra exemplificar.

           

          Valeu muito pelas dicas.

          Até mais.

           

          #151777
          Avatar de MottaMotta
          Participante

            Ok

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress