« first day    last day (16 days later) » 

13:45
@Sorack Amigo, conseguisse ver algo? To meio loco com isso já.
14:21
@JoséLuis Ué, então é qualquer pessoa que não teve exame de demissão no ano de 2018? E quem teve em 2017?
14:36
@Sorack Tipo. Esse sistema de PCMSO pega todos os funcionários que fizeram algum tipo de exame no determinado ano, no caso 2018. Ele tem que me dar um numero de funcionários ativos até o final de 2018, sendo assim ele não pode contar qualquer um dos funcionários que tiverem exames demissionais no ano. Tudo que acontece nesse sistema e voltado em relatório anual. Eu tenho que contar os funcionários por setor, no caso setor administração tem 20 funcionários.
@Sorack porém isso é depois de eu sanar este problema de não conseguir ignorar a verificação do funcionários que tiverem exames demissionais. Pra ti fazer um exemple, lista todos de 2018 nesse codigo de empresa (179), dai tu pega e não conta nenhum que estiver com exame demissional, ou seja, caso a fulana tenha um retorno ao trabalho e outro demissional, a fulana não poderá ser contada. E caso tenho outros funcionários com dois exames,,,
@Sorack por exemple: 1 admissional e outro periódico e devera contar uma so vez. Acho que assim ficou tudo mais explicado do que este sistema é.
@JoséLuis beleza, até as 14h eu mudo minha resposta pra funcionar no seu cenário
@JoséLuis pronto, veja se te atende
@Sorack Bah se der certo tu é o melhor mesmo. Este foi meu primeiro sistema que fiz.
Mudei de novo, veja la
@Sorack vou fazer os testes e imprimir pra ver. Desde já muito obrigado.
@Sorack Nisso que você fez ele pega tudo menos os demissionais certo? Além de se ter dois ele não listar
15:54
@JoséLuis O primeiro exists ve se tem um exame (fora demissional) no ano de 2018
Com esse aqui acho os 48 que te digo, testa ai:
select funcionario.CodFuncionario,funcionario.funcionario_Nome,examefuncionario.exameFunc_Data, funcionario.funcionario_Ativo
from funcionario
join examefuncionario on examefuncionario.exameFunc_CodFuncionario = funcionario.CodFuncionario and date_format(examefuncionario.exameFunc_Data, "%Y") = '2018'
join cbo on cbo.CodCBO = funcionario.funcionario_CodCBO
where funcionario_CodEmpresa = 179
and date_format(funcionario_DataAdm, "%Y") <= '2018'
order by funcionario.funcionario_Nome ASC
Esse seria o relatório e a cliente disse que está certo
16:12
Mas se é esse pq vc não já não usa ele?
Po que esse lista tudo correto? Dai na segunda pagina eu tenho que contar os fusionários por setor, porém que nem eu disse não podem haver demissionais
essa tua query não dá certo
tem gente que sai e entra na empresa
se você só usar <= você não consegue saber se é a ultima admissão
infelizmente os dados não são confiáveis, aí não dá pra ter uma solução além da última que eu coloquei na resposta
que retorna 48
Aqui retotnou 44
select setor.setor_Nome, COUNT(funcionario.funcionario_CodSetor) AS total
from funcionario
join examefuncionario
	on examefuncionario.exameFunc_CodFuncionario = funcionario.CodFuncionario
	and date_format(examefuncionario.exameFunc_Data, "%Y") = '2018'
	and examefuncionario.exameFunc_Natureza != 'D'
join setor
on setor.CodSetor = funcionario.funcionario_CodSetor
where funcionario_CodEmpresa = 179
and date_format(funcionario_DataAdm, "%Y") <= '2018'
group by setor.CodSetor
order by setor.setor_Nome ASC
Essa que eu uso para retornar os numeros de func por setor
Ta aqui funcionou, mas agora como eu aplico essa ultima query que tu me ajudou a calcular os setores, ja que a listagem funcionou
16:31
Você não copiou a atualizada então
SELECT f.CodFuncionario,
f.funcionario_Nome
FROM funcionario f
WHERE f.funcionario_CodEmpresa = 179
AND EXISTS(SELECT 1
FROM examefuncionario ef
WHERE ef.exameFunc_CodFuncionario = f.CodFuncionario
AND DATE_FORMAT(ef.exameFunc_Data, "%Y") = '2018'
AND ef.exameFunc_Natureza <> 'D')
AND NOT EXISTS(SELECT 1
FROM examefuncionario ef
WHERE ef.exameFunc_CodFuncionario = f.CodFuncionario
AND DATE_FORMAT(ef.exameFunc_Data, "%Y") = '2018'
AND ef.exameFunc_Natureza = 'D')
GROUP BY f.CodFuncionario
ORDER BY f.funcionario_Nome ASC
Acho que consegui irmão
Vou mandar pra cliente e ver se ela me retorna o positivo
 
2 hours later…
18:24
@JoséLuis eae? qq deu?
19:13
@Sorack A moça que faz os relatórios está conferindo. Te mantenho atualizado. Vlww

« first day    last day (16 days later) »