Jump to content
Viniciusr9

Script com retorno de dias uteis no mês

Recommended Posts

Script com retorno de dias uteis no mês ( desconsiderando finais de semana e feriados também ( os mesmos cadastrados em uma tabela )), ajuda!

 

Boa tarde,

alguém poderia me ajudar , tentei com alguns que vi pela net , fazendo alterações mas não consegui o que gostaria ainda. Preciso de um script que dado um valor (mês/ano) ele retorne a quantidade de dias uteis nesse mês, desconsiderando os sabados e domingos e os feriados listados na tabela de feriados, em Oracle Sql puro ou PL/SQL  . Agradeço pela ajuda!

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 Kr3w^
      Pessoal, bom dia
       
      Estou com um problema e quebrando a cabeça para resolver.
       
      Eu preciso filtrar informação de uma tabela e somar as quantidades do período informado e trazer a quantidade total do mês para esse produto. 
       
      Segue um exemplo de como eu queria que viesse.
       
       
      Ao filtrar o período do mês 01/01/2020 a 31/12/2020 ele deveria trazer para mim a seguinte informação.
       
      Item     -     MES    -     Quantidade
      PARAFUSO  - JANEIRO - 40
      PARAFUSO  - FEVEREIRO - 20
      PARAFUSO  - MARÇO - 30
      .....
      PARAFUSO  - DEZEMBRO- 10
       
      Dentro do período informado ele trás a quantidade total do mês, porém, essa quantidade eu faço a soma pelo SUM e como eu preciso trazer o mês falar qual o mes e quantidade, ele trás mais linhas do mesmo mês, isso porque, dentro do mês ele possui registros de diversas datas, e o group by quando vê as datas diferentes não agrupam e só agrupa o que for data igual.
       
      Como posso resolver isso? Alguém tem alguma ideia?
       
       
    • By MarcosAntonio
      Boa tarde !
      estou carregando um arquivo texto numa variável BLOB e preciso manipular em loop, para ler linha a linha e aplicar os SUBSTRs para inserir no banco, mas não sei como fazer o loop, a interação entre as linhas e quando saber o momento de sair do loop, alguém pode me ajudar?

      ex do conteúdo do BLOB:
       
      2AAA02012021123421
      2AAA02012021213453
      2AAA02012021105413
       
      quero por exemplo retirar a informação da linha 2 a partir do quarto caracter e parando no decimo segundo caracteres
    • By Motta
      Oracle is moving its headquarters from Silicon Valley to Austin, Texas
    • By Thiago Btos
      Boa tarde galera.
       
      Fiz um select que tras 4 informações do banco (matricula, nome, data e hora)
      SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ORDER BY QD1_DTBAIX, QD1_HRBAIX Retornando os seguintes registros:

       
       
       
      Preciso retornar somente as linhas em amarelo, que seria a seguinte condição.
      Caso tiver alguma matricula igual, trazer somente o registro com a maior data, junto com seu respectivo horário.
       
       
      O mais próximo que consegui chegar foi utilizando o MAX para data e hora, e agrupando o restante dos campos.
      SELECT QD1_MAT,RA_NOME,MAX(DATA), MAX(QD1_HRBAIX) FROM ( SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ) GROUP BY QD1_MAT,RA_NOME Porém na hora ele não pega o valor correspondente e sim o valor máximo.

       
       
      Ai estou travado nessa parte, como faço para trazer a hora corresponde sem o restante dos registros?
    • By mr22robot
      Boa tarde. Estou com o seguinte problema: Preciso retornar um selct da seguinte maneira:
      exemplo que não funciona:
      select codusur,numnota,codcli,cliente,vltotal,numtransvenda,dev,decode(vlvenda),if(vlvenda > 100 then 1 else 2) from( select tb1.codusur,tb1.numnota,tb1.codcli,tb1.cliente,tb1.vltotal,tb1.numtransvenda,DECODE(tb2.VLTOTAL,NULL,0,tb2.VLTOTAL)DEV from( select codusur,numnota,pcnfsaid.codcli,pcnfsaid.cliente,pcnfsaid.vltotal,pcnfsaid.numtransvenda from pcnfsaid where pcnfsaid.dtsaida > '01-OCT-2020' and pcnfsaid.dtcancel is null )tb1 left outer join (select DISTINCT VLTOTAL,VW_INTEGRA_DEVOLUCAO_TOTAL.NUMTRANSVENDA from VW_INTEGRA_DEVOLUCAO_TOTAL )tb2 on tb1.NUMTRANSVENDA = tb2.NUMTRANSVENDA order by numnota ) Como pode reparar, eu usei um if/else já que não sei a forma correta de usar. Pois com DECODE não consegui usar uma forma de fazer a comparação. 
      Pois preciso mesmo retornar uns valores fixos. Ex: 
      Se o valor > 40000, retorna um valor x; Se for maior que 5000 retorna um valor y. 
      Aguardo a ajuda dos amigos. Grato
×

Important Information

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