Ir para conteúdo

Sql Para Planilha.net


Posts Recomendados


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  195
  • Conteúdo/Dia:  0.04
  • Reputação:   2
  • Pontos/Conquistas:  1.557
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  49

Bom dia Galera blz !!!

Preciso de ajuda par amontar a seguinte SQL para retornar os campos abaixo.

preciso que a planilha traga os seguintes campos da base:

Nome do Funcionário Chapa PIS Data

Exemplo:

O Filtro Local deve ser Chapa do Funcionario= 00036837 e

Chapa do Funcionário= 00030703 ou

Chapa do Funcionario=00040825 ou

O Campo PIS é complementar.

Obrigado.

Link para comentar
Compartilhar em outros sites

  • 3 semanas depois...

  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  34
  • Conteúdo/Dia:  0.01
  • Reputação:   2
  • Pontos/Conquistas:  202
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Henrique creio que o sql abaixo possa te ajudar, informei o para não trazer os demitidos. Caso queira especificar uma chapa insira a informação na marcação que esta em vermelho. Como não especificou a data desejada inseri apenas a data de admissão.

SELECT P.CHAPA, P.CODTIPO, S.DESCRICAO SECAO, P.NOME, P.PISPASEP, P.DATAADMISSAO, F.NOME FUNCAO FROM PFUNC P

INNER JOIN PFUNCAO F ON P.CODFUNCAO=F.CODIGO

INNER JOIN PSECAO S ON P.CODSECAO=S.CODIGO

WHERE P.CODSITUACAO = 'D' AND P.CHAPA=""

ORDER BY P.NOME

By By

Editado por Elaine Santos
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.11
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  47

Olá Elaine

Seu select está quase completo e aproveitando :-)

Talvés você já tenha esse conhecimento, mas se não tiver pode ser bom saber e de qualquer forma vai servir para mais colegas.

Vamos as boas práticas para uma consulta SQL:

1º) Procre concatenar sua consulta para que ela fica fácil de ser interpretada e assim além de facilitar o uso também vai facilitar a manutenção.

2º) É totalmente permitido apelidar as tabelas para chamá-las juntas aos campos em todo o conteúdo da consulta, mas quando maior a quantidade de tabelas vinculadas e campos listados de cada uma maior o tempo até identificar que campo pertence a qual tabela. Por isso é sempre bom manter o nome original da tabela ou apelidos do tipo PFUNC_DEMITIDO, PFUNC_ATIVO, etc....

3º) Sempre coloque (NOLOCK) nas chamas às tabelas para que sua consulta não fique travada quando um registro a ser listado encontrar-se em uma transação por outra aplicação ou no caso pelo próprio Corpore RM.

4º) Por fim, quando montar consulta para nas tabelas do Corpore RM é sempre bom se lembrar de vincular Coligada e Filial, do contrário um único cadastro pode se multiplicar pelo número de coligadas + o número de filiais que eslas tiverem e a coisa vai engrossando quando você coloca sessão, departamento, etc....

SELECT
 PFUNC.CHAPA,
 PFUNC.CODTIPO,
 PSECAO.DESCRICAO AS SECAO,
 PFUNC.NOME,
 PFUNC.PISPASEP,
 PFUNC.DATAADMISSAO,
 PFUNCAO.NOME AS FUNCAO
FROM
 PFUNC (NOLOCK)
 INNER JOIN PFUNCAO
  ON
  PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA AND
  PFUNC.CODFUNCAO = PFUNCAO.CODIGO
 
 INNER JOIN PSECAO (NOLOCK)
  ON
  PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND
  PFUNC.CODSECAO=PSECAO.CODIGO

WHERE
 PFUNC.CODSITUACAO = 'A' AND  -- altere a letra deste campo conforme o status que queira listas ou remova/comente essa linha para listar todos os status.
 PFUNC.CHAPA='00030703'

ORDER BY
 PFUNC.NOME

Henrique, como expliquei acima a consulta da Elaine está legal, eu só fiz essas pequenas correções e depois de uma alô se a consulta funcionou, isso garantirá que você sempre terá mais apoio dos amigos aqui do Forum RM.

Até mais

:victory:

  • Like 1
Link para comentar
Compartilhar em outros sites

  • 2 semanas depois...

  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  34
  • Conteúdo/Dia:  0.01
  • Reputação:   2
  • Pontos/Conquistas:  202
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Valeu pelo toque Robinson.....desculpem a demora, mas existem tempos complicados aqui e quase não fico na sala.....pareço até funcionária de vários departamentos rsrsrs

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.11
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  47

É Elaine, sei como é isso e trabalhando com ERP você acaba realmente participando de todos ou quase todos os departamentos.

Qualquer quer dúvida é só postar aqui que tentarei ajudar.

Só faltou nosso amigo Henrique Oliveira dar um retorno para nós né.....

Vamos lá Henrique, pelpo menos diz se está vivo :-)

Grande abraço Elaine.

:victory:

Valeu pelo toque Robinson.....desculpem a demora, mas existem tempos complicados aqui e quase não fico na sala.....pareço até funcionária de vários departamentos rsrsrs

Link para comentar
Compartilhar em outros sites

  • 2 semanas depois...

  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  34
  • Conteúdo/Dia:  0.01
  • Reputação:   2
  • Pontos/Conquistas:  202
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Se for para mesma destinação solicitada para mim, segue abaixo....no meu caso me foi pedido para inserir função e situação. A data que você precisa é de admissão ou nascimento?

SELECT PFUNC.CHAPA,

PFUNC.NOME,

PPESSOA.CPF,

PPESSOA.EMAIL,

PPESSOA.DTNASCIMENTO as Nascimento,

PFUNC.CODFUNCAO,

PSECAO.DESCRICAO,

PFUNC.CODSITUACAO,

PFUNC.DATAADMISSAO as Admissão,

FROM PFUNC

LEFT OUTER JOIN PPESSOA ON (PFUNC.CODPESSOA = PPESSOA.CODIGO) LEFT

OUTER JOIN PTPFUNC ON (PFUNC.CODTIPO = PTPFUNC.CODCLIENTE)

WHERE PFUNC.CODSITUACAO'D'

ORDER BY PFUNC.NOME

Inseri as 2 datas, ficando a seu critério.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  195
  • Conteúdo/Dia:  0.04
  • Reputação:   2
  • Pontos/Conquistas:  1.557
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  49

Se for para mesma destinação solicitada para mim, segue abaixo....no meu caso me foi pedido para inserir função e situação. A data que você precisa é de admissão ou nascimento? SELECT PFUNC.CHAPA, PFUNC.NOME, PPESSOA.CPF, PPESSOA.EMAIL, PPESSOA.DTNASCIMENTO as Nascimento, PFUNC.CODFUNCAO, PSECAO.DESCRICAO, PFUNC.CODSITUACAO, PFUNC.DATAADMISSAO as Admissão, FROM PFUNC LEFT OUTER JOIN PPESSOA ON (PFUNC.CODPESSOA = PPESSOA.CODIGO) LEFT OUTER JOIN PTPFUNC ON (PFUNC.CODTIPO = PTPFUNC.CODCLIENTE) WHERE PFUNC.CODSITUACAO<>'D' ORDER BY PFUNC.NOME Inseri as 2 datas, ficando a seu critério.

Boa tarde Elaine e Robinson,

segue o resultado da Consulta do Robinson deu erro .Segue abaixo o resultado

Referência de objeto não definida para uma instância de um objeto.

Código da Informação: [0dc060f56fed3fedf055af476510b102]

A SQL da Elaine tb dá erro. Retorna os Campos em branco ....

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  34
  • Conteúdo/Dia:  0.01
  • Reputação:   2
  • Pontos/Conquistas:  202
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Henrique boa tarde ....se trouxe campos em branco solicito que dê uma olhada nos campos informados no select, pois pode estar solicitando alguma informação que não condiz com seus dados, no caso eu coloquei pra não trazer os funcionários D (demitidos) verifique alguma cláusula seletiva válida e insira.

Espero ajudar.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.11
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  47

Olá Henrique

É exatamente o que a Elaine disse.

Nós temos cada um o seu ambiente e entre eles existem muitas coisas em comum, a começar pelas tabelas e campos da base da dados, já que no geral seguem um padrão definido pela Totvs, mas o preenchimento de muitas dessas tabelas e campos não são obrigatórios e mesmo que fossem obrigatórios nem sempreseriam preenchidos com as mesmas informações.

Por isso na maioria das vezes alguma coisa você terá que ajustar nas consultas.

Por exemplo: Aí você utiliza a chapa com oito digitos 00030703 e aqui utilizamos com 5 digitos 03511 e os códigos de sessões e departamentos aqui seguem uma sequência e associações diferente daí.

Outra coisa!

Pelo erro que você reportou imagino que tenha testado a consulta diretamente no RM Labore.

Henrique, todas as consultas que lhe enviarem você deve testá-las e avaliá-las em uma interface de consulta ao banco de dados como por exemplo o SQL Managem e que de preferência faça uma cópia da base de dados e nesta cópia rode essas consultas e faça qualquer teste antes de aplicar no ambiente de produção.

Se você não se sentir seguiro para preparar esse ambiente aconselho a solicitar para quem cuida de sua rede e computadores a fazer para você.

Desculpe não ajudar mais do que isso, mas será mesmo necessário que você siga esses passos para dar continuidade e a turma aqui do forum poder te ajudar.

Ps.: Tente dar um alô mais rápido para quem tenta te ajudar aqui no forum, afinal não somos funcionários do forum, somo usuários que compartilha da mesma situação que você e compartilhamos um pouco do nosso conhecimento simplesmente por colaboração.

Boa sorte

:victory:

  • Like 1
Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.