Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fernando Oliveira

Select

Recommended Posts

Bom dia amigos

 

Tenho uma dúvida no seguinte código:

 

SELECT funcionarios.empresa, funcionarios.funcionario, funcionarios.cartaoponto, funcionarios.nome, funcionarioscompetencias.funcao,

funcionarios.dataadmissao, funcionarios.datademissao, funcionarios.causademissao, funcionariossalarios.valorsalario,

folhafuncionarios.baseinsssalario, acumuladofuncionarios.valorsalfam12, apontamentosfolha.comissoes, folhafuncionarios.baseinsssalario,

folhafuncionarios.valorinsssalario, (folhafuncionarios.valorfgts + folhafuncionarios.valorfgts13), acumuladofuncionariosir.valorassmed12,

funcionarioscompetencias.competencia, folhafuncionarios.baseirsalario, folhafuncionarios.deducaoirsalario, '31122010',

acumuladofuncionariosir.baseir13, acumuladofuncionariosir.deducaoir13, acumuladofuncionariosir.valorir13, acumuladofuncionariosir.deducaodep13,

acumuladofuncionariosir.valorpensao13, acumuladofuncionariosir.deducaoir13, ferias.apuracaoir, folhafuncionarios.baseirferias,

ferias.deddependente, ferias.pensaoferias, ferias.inss, ferias.vencimentoir, folhafuncionarios.salariocontribuicaoinss,

(folhafuncionarios.valorfgts + folhafuncionarios.valorfgts13)

------------------------------------------------------------------------------------------------------------------------------------------------------

FROM funcionarios, funcionarioscompetencias, funcionariossalarios, folhafuncionarios, acumuladofuncionarios, acumuladofuncionariosir, ferias,

apontamentosfolha

------------------------------------------------------------------------------------------------------------------------------------------------------

WHERE funcionarios.empresa = '000257' AND

funcionarios.funcionario = '012036' AND

 

funcionarioscompetencias.empresa = '000257' AND

funcionarioscompetencias.funcionario = '012036' AND

funcionarioscompetencias.competencia = '122010' AND

 

funcionariossalarios.empresa = '000257' AND

funcionariossalarios.funcionario = '012036' AND

funcionariossalarios.competencia = '122010' AND

 

folhafuncionarios.empresa = '000257' AND

folhafuncionarios.funcionario = '012036' AND

folhafuncionarios.competencia = '122010' AND

 

 

acumuladofuncionarios.empresa = '000257' AND

acumuladofuncionarios.funcionario = '012036' AND

acumuladofuncionarios.exercicio = '2010' AND

 

acumuladofuncionariosir.empresa = '000257' AND

acumuladofuncionariosir.funcionario = '012036' AND

acumuladofuncionariosir.exercicio = '2010' AND

 

ferias.empresa = '000257' AND

ferias.pricompetefer = '122010' AND

ferias.funcionario = '012036' AND

 

apontamentosfolha.empresa = '000257' AND

apontamentosfolha.funcionario = '012036' AND

apontamentosfolha.competencia = '122011'

 

 

Quando executo com o código de um funcionário específico exemplo: '012036', executa sem problemas.

 

Mas quando executo sem a condição de um funcionário específico, ou seja de todos os funcionários da empresa entra em looping, sem listar nada

 

Alguem tem idéia da alteração necessária para essa condição?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa fazer os joins entre as tabelas, ao invés de fazer as condições para uma matrícula apenas, sem as condições o sql deve estar gerando um produto cartesiano indevido que faz o Sistema travar.

 

Procure ler alguma documentação sobre sql joins.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No teu exemplo.

 

SELECT funcionarios.empresa, funcionarios.funcionario, funcionarios.cartaoponto, funcionarios.nome, funcionarioscompetencias.funcao, 
funcionarios.dataadmissao, funcionarios.datademissao, funcionarios.causademissao, funcionariossalarios.valorsalario, 
folhafuncionarios.baseinsssalario, acumuladofuncionarios.valorsalfam12, apontamentosfolha.comissoes, folhafuncionarios.baseinsssalario, 
folhafuncionarios.valorinsssalario, (folhafuncionarios.valorfgts + folhafuncionarios.valorfgts13), acumuladofuncionariosir.valorassmed12,
funcionarioscompetencias.competencia, folhafuncionarios.baseirsalario, folhafuncionarios.deducaoirsalario, '31122010', 
acumuladofuncionariosir.baseir13, acumuladofuncionariosir.deducaoir13, acumuladofuncionariosir.valorir13, acumuladofuncionariosir.deducaodep13, 
acumuladofuncionariosir.valorpensao13, acumuladofuncionariosir.deducaoir13, ferias.apuracaoir, folhafuncionarios.baseirferias,
ferias.deddependente, ferias.pensaoferias, ferias.inss, ferias.vencimentoir, folhafuncionarios.salariocontribuicaoinss,
(folhafuncionarios.valorfgts + folhafuncionarios.valorfgts13) 
------------------------------------------------------------------------------------------------------------------------------------------------------
FROM funcionarios, funcionarioscompetencias, funcionariossalarios, folhafuncionarios, acumuladofuncionarios, acumuladofuncionariosir, ferias, 
apontamentosfolha
------------------------------------------------------------------------------------------------------------------------------------------------------
WHERE funcionarios.empresa = '000257' AND
funcionarios.funcionario = '012036' AND

funcionarioscompetencias.empresa = funcionarios.empresa AND
funcionarioscompetencias.funcionario = funcionarios.funcionario AND
funcionarioscompetencias.competencia = '122010' AND

funcionariossalarios.empresa = funcionarios.empresa AND
funcionariossalarios.funcionario = funcionarios.funcionario AND
funcionariossalarios.competencia = funcionarioscompetencias.competencia AND

folhafuncionarios.empresa = funcionarios.empresa AND
folhafuncionarios.funcionario = funcionarios.funcionario AND
folhafuncionarios.competencia = funcionarioscompetencias.competencia AND


acumuladofuncionarios.empresa = funcionarios.empresa AND
acumuladofuncionarios.funcionario = funcionarios.funcionario AND
acumuladofuncionarios.exercicio = '2010' AND

acumuladofuncionariosir.empresa = funcionarios.empresa AND
acumuladofuncionariosir.funcionario = funcionarios.funcionario AND
acumuladofuncionariosir.exercicio = acumuladofuncionarios.exercicio AND

ferias.empresa = funcionarios.empresa AND
ferias.pricompetefer = funcionarioscompetencias.competencia AND
ferias.funcionario = funcionarios.funcionario AND 

apontamentosfolha.empresa = funcionarios.empresa AND
apontamentosfolha.funcionario = funcionarios.funcionario AND
apontamentosfolha.competencia = funcionarioscompetencias.competencia 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.