Jump to content
Maccio

Funcionários Férias

Recommended Posts

Estou tentando criar um relatório com total de horas trabalhadas do funcionários por dia, tenho uma tabela FRQ_digitacao onde eu tenho os dados para calcular o total de horas e se tiver com zero horas eu digo a ocorrência do mesmo, ex: falta, Folga, etc. Quero também colocar a informação de férias quando o mesmo estiver de férias, porém quando ele está de férias a tabela FRQ_digitacao fica sem registros nos dias de Férias, assim tenho que buscar a informação na tabela FLP_Ferias onde é lá que diz o gozoinicial e gozofinal, porém não estou conseguindo fazer essa comparação já que na tabela FRQ_digitacao nesses dias de ferias o funcionário fica sem registro.

 

select T.CODINTFUNC, f.CHAPAFUNC,
LISTAGG( 
CASE

 WHEN T.NORMALDIGIT=0
 THEN OC.DESCMAPAOCORR
  
 WHEN t.DTDIGIT IS NULL
 THEN 'dt.dtdigit' 
 
 --when dt.dtdigit between fe.inicio and fe.fim
 --then 'FER'
 
 ELSE
  to_char((TRUNC(T.NORMALDIGIT)+TRUNC(t.extradigit)+TRUNC(t.extranotdigit))+
   ((trunc(((T.NORMALDIGIT-trunc(T.NORMALDIGIT))+(t.extradigit-trunc(t.extradigit))+(t.extranotdigit-trunc(t.extranotdigit)))/0.60))+
  mod(((T.NORMALDIGIT - trunc(T.NORMALDIGIT))+(t.extradigit - trunc(t.extradigit))+(t.extranotdigit - trunc(t.extranotdigit))),0.60)),'FM99999D90', 'nls_numeric_characters=''.,''' ) 
END, '         ')
    within group (order by t.dtdigit) horas, 
    
MAX(FE.INICIO), MAX(FE.FIM )
  
from  vw_funcionarios f,
FRQ_DIGITACAOMOVIMENTO O, 
FRQ_OCORRENCIA OC, 
frq_digitacao t,
(select f.codintfunc INT, f.chapafunc, max(fe.dtcompetfer)COMPET, MAX(fe.gozoinifer) INICIO, MAX(fe.Gozofinfer) FIM  
from 
flp_ferias fe, 
flp_funcionarios f 
where f.codintfunc=fe.codintfunc AND F.SITUACAOFUNC='A' and f.codigoempresa=1
AND FE.STATUSFERIAS='N'
group by f.chapafunc, f.codintfunc) FE,

(select t.DTDIGIT from frq_digitacao t WHERE t.dtdigit between '01-NOV-2019'  AND '20-NOV-2019'
group by t.dtdigit) DT

where DT.DTDIGIT(+)=T.dtdigit and  fe.INT=t.codintfunc and f.codintfunc=t.codintfunc AND F.CODIGOEMPRESA=1 and O.CODINTFUNC=T.CODINTFUNC AND T.DTDIGIT=O.DTDIGIT
AND O.CODOCORR=OC.CODOCORR AND dt.dtdigit BETWEEN '01-NOV-2019'  AND '20-NOV-2019' -- AND F.CODDEPTO BETWEEN 15  AND 15
AND O.STATUSDIGIT='N' and 
o.iddigit = (select max(p.iddigit) from frq_digitacaomovimento p
             where o.codintfunc=p.codintfunc and o.dtdigit=p.dtdigit AND P.STATUSDIGIT='N' 
             and p.dtdigit between '01-NOV-2019'  AND '20-NOV-2019')
             
group by f.CHAPAFUNC, T.CODINTFUNC

 

FLP_FERIAS.png

Resultado.png

FRQ_DIGITACAO.png

Share this post


Link to post
Share on other sites

As vezes a solução pode vir por union , algo assim

 

Select nome, ferias.inicio , ferias.fim

From funcionarios f, ferias fr

Where fr.idfunc = f.id

Union

Select nome,null,null

From funcionarios f

Where not exists (select null from ferias fr where fr.idfunc = f.id)

 

Ou uma function , em geral nestas horas o melhor e refazer a sql no lugar de tentar consertar ...

Edited by Motta

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 Luiz2020
      Pessoal,
       
      Preciso levar uma instância que está no SQL 2017 express e carregar no SQL 2014 express (servidores diferentes), gerando o backup pelo Management Studio (.bak) no sql 2017 express, ocorre erro de incompatibilidade de versão quando tento carregar no sql 2014 express.
       
      Com isso, no 2017 gerei a instânca full no script.sql (o arquivo .sql ficou enorme quase 1 GB),  ao carregar no sql 2014 express está ocorrendo erro de memória insuficiente.
       
      Encontrei uma forma de carregar o script.sql via comando: sqlcmd -S servidor -U login -P senha -i Script.sql  está carregando porém de forma muita lenta.
       
      Será que alguém pode ajudar?
       
      Desde já agradeço.
       
       
       
    • By Jafreal
      Bom dia a todos
       
      Tenho essa query abaixo que estou colocando em um "pedaço" do sistema RM, chamado CUBO.
      DECLARE @CODCOTACAO NVARCHAR(40) DECLARE @CODCOLIGADA INT SET @CODCOTACAO ='2020.000170' -- (numero de cotação) SET @CODCOLIGADA = '2' SELECT Y.IDPRD,MIN(Y.VALCOTACAO * Y.QUANTIDADEORC) as VALOR FROM TCITMORCAMENTO (NOLOCK) Y WHERE Y.CODCOLIGADA = @CODCOLIGADA AND Y.CODCOTACAO = @CODCOTACAO AND Y.VALCOTACAO > 0 GROUP BY Y.IDPRD Essa query poderá, em grande maioria de vezes, me trazer um grande número de linhas, pois estou trazendo de uma cotação os valores mais baixo por produto. Até ai tudo bem, mas me surge um problema, pois devo agora somar o conteúdo, campo VALOR, de todos os itens. Sei que a melhor maneira seria criar uma tabela temporária, mas dentro ERP RM, o mesmo não permite utilizar querys que criam tabelas temporárias e por isso que estou aqui. Gostaria de vocês alguma sugestão para esse dilema. Como somar  as linhas que surgiram dessa query?
    • By asacap1000
      Salve Galera, tenho uma tabela no banco de dados que estão salvos os dados de fotos armazenadas, uma das tabela consta o caminho das mesmas.
      Hoje consigo buscar estas fotos, mostrar na tela do site tudo certo. Porém estou precisando adicionar um botão para o envio de email com estas imagens em anexos.
      Saberiam me dizer como posso fazer isso?
      Tenho um formulário com os campos Remetente: Nome / Email  - Destinatário: Nome / Email
      e o campo de input file porém as imagens não carregam. Fiz um teste assim:
       
      <div class="input_fields_wrap"> <?php while ($row = oci_fetch_object($stmt2)) { ?> <div><input type="file" name="fotos[]" value="<?=$string3?>" multiple></div> <? }?> </div> Ele carrega assim até lista a quantidade de imagens na consulta mas não carrega as imagens.
       

    • By José Peixoto
      Olá,
       
      há alguma forma de fazer uma trigger só ser executada depois que a outra executar? 
       
      Por exemplo: a trigger2 só é disparada quando a trigger1 fizer o commit das informações.
       
      Obrigado desde já :)
    • By asacap1000
      Salve galera. estou com uma zica aqui e não vai.
      Tenho um servidor WEB final IP final 120 neste servidor eu acesso um banco de dados de outro servidor 122, tem uma tabela com fotos e precisaria mostrar estas fotos na intranet. porém ele me mostra o caminho mas não mostra a imagem.
       
      Na Tabela está sendo salvo desta forma:
      Z:/Avarias/FOTOS/Alfandegado/2020/01.%20JANEIRO/14.01.2020/AVARIA%20CLIENTE%20CN=%20191234%20(2).JPG
       
      Chamei ele na tela desta forma:
      <?php ociexecute($stmt2,OCI_DEFAULT); while ($row = oci_fetch_object($stmt2)) { $string = OCIResult ($stmt2 ,1); ///link da avaria $avaria = OCIResult ($stmt2 ,2); ///titulo da avaria ?> <a href="<?=$string ?>" width="20%" height="30%" data-lightbox="gallery" > <button type="button" class="btn btn-dark active" data-toggle="modal" data-target="#modalExemplo"> <img src="<?=$string?>" width="160" height="100" class="rounded" title="<?=$avaria?>"> <br> </button> Na tela aparece desta forma:

       
      Se eu clicar na imagem fica assim apenas carregando:
       

       
      Se eu mandar abrir em nova guia a imagem aparece essa mensagem:

      Se eu copiar o link com botão direito e abrir no navegador ela abre normalmente.
       
      Ah lembrando que são tres servidores 120 web, 122 banco de dados, 128 as fotos onde salva como mapeamento Z://
      Alguem teria alguma idéia de como chamar estas fotos???
       
×

Important Information

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