Gabriela Borin Postado 12 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Denunciar Compartilhar Postado 12 de Setembro de 2018 Estou criando uma SQL para criar um relatório de atualização cadastral, porém são várias tabelas a ser vinculadas. Quando eu salvo da erro em alguma linha após o FROM, acredito que seja nos JOINs. Alguém poderia ver se fiz as ligações corretas? Fico no aguardo. SELECT PFUNC.NOME AS NOME_FUNC, PFUNC.DATAADMISSAO, PFUNC.CHAPA, PFUNC.PISPASEP, PFUNC.DTCADASTROPIS, PFUNCAO.NOME AS NOME_FUNCAO, PPESSOA.CARTEIRATRAB, PPESSOA.SERIECARTTRAB, PPESSOA.CPF, PPESSOA.RUA AS END_FUNC, PPESSOA.NUMERO AS NUM_FUNC, PPESSOA.BAIRRO AS BAIRRO_FUNC, PPESSOA.CIDADE AS CID_FUNC, PPESSOA.CEP AS CEP_FUNC, PPESSOA.ESTADO AS ESTADO_FUNC, PPESSOA.CARTIDENTIDADE, PPESSOA.DTCARTTRAB, PPESSOA.UFCARTTRAB, PPESSOA.CERTIFRESERV, PPESSOA.CATEGMILITAR, PPESSOA.TITULOELEITOR, PPESSOA.ZONATITELEITOR, PPESSOA.SECAOTITELEITOR, PPESSOA.ORGEMISSORIDENT, PPESSOA.UFCARTIDENT, PPESSOA.CARTMOTORISTA, PPESSOA.TIPOCARTHABILIT, PPESSOA.DTEMISSAOIDENT, PPESSOA.ESTADOCIVIL, PPESSOA.SEXO, PPESSOA.GRAUINSTRUCAO, PPESSOA.NATURALIDADE, GFILIAL.NOME AS NOME_FILIAL, GFILIAL.CGC, PCODNACAO.DESCRICAO, PCODINTRUCAO.DESCRICAO, PCODESTCIVIL, PFDEPEND.GRAUPARENTESCO FROM PFUNC (NOLOCK) JOIN PFUNCAO ON PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO JOIN PPESSOA ON PPESSOA.CODIGO = PFUNC.CODPESSOA JOIN GFILIAL ON GFILIAL.CODCOLIGADA = PFUNC.CODCOLIGADA AND GFILIAL.CODFILIAL = PFUNC.CODFILIAL JOIN PCODNACAO.CODCLIENTE = PPESSOA.CODIGO AND PCODNACAO.DESCRICAO = PPESSOA.NACIONALIDADE JOIN PCODINSTRUCAO.CODCLIENTE = PPESSOA.CODIGO AND PCODINSTRUCAO.DESCRICAO = PPESSOA.GRAUINSTRUCAO JOIN PCODESTCIVIL.CODCLIENTE = PPESSOA.CODIGO AND PCODESTCIVIL.DESCRICAO = PPESSOA.ESTADOCIVIL JOIN PFDEPEND.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFDEPEND.GRAUPARENTESCO = PFUNC.GRAUPARENTESCO WHERE PFUNC.CODSITUACAO <> 'D' AND PFUNC.CODCOLIGADA =:CODCOLIGADA AND PFUNC.CODFILIAL =:CODFILIAL AND PFUNC.CHAPA =:CHAPA AND PFDEPEND.GRAUPARENTESCO = '6' AND PFDEPEND.GRAUPARENTESCO = '7' GROUP BY PFUNCAO, PPESSOA, GFILIAL, PFUNC, PCODNACAO, PCODINSTRUCAO, PCODESTCIVIL, PFDEPEN ORDER BY PFUNC.NOME Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 12 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 12 de Setembro de 2018 Tá errado a partir daqui: JOIN PCODNACAO.CODCLIENTE = PPESSOA.CODIGO AND PCODNACAO.DESCRICAO = PPESSOA.NACIONALIDADEJOIN PCODINSTRUCAO.CODCLIENTE = PPESSOA.CODIGO AND PCODINSTRUCAO.DESCRICAO = PPESSOA.GRAUINSTRUCAOJOIN PCODESTCIVIL.CODCLIENTE = PPESSOA.CODIGO AND PCODESTCIVIL.DESCRICAO = PPESSOA.ESTADOCIVILJOIN PFDEPEND.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFDEPEND.GRAUPARENTESCO = PFUNC.GRAUPARENTESCO Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 12 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 12 de Setembro de 2018 (editado) depois do JOIN nome da tabela Editado 12 de Setembro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gabriela Borin Postado 13 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Autor Denunciar Compartilhar Postado 13 de Setembro de 2018 Eu coloquei o nome da tabela conforme vc orientou e deu esse erro: FROM PFUNC (NOLOCK) JOIN PFUNCAO ON PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO JOIN PPESSOA ON PPESSOA.CODIGO = PFUNC.CODPESSOA JOIN GFILIAL ON GFILIAL.CODCOLIGADA = PFUNC.CODCOLIGADA AND GFILIAL.CODFILIAL = PFUNC.CODFILIAL JOIN PCODNACAO ON PCODNACAO.CODCLIENTE = PPESSOA.CODIGO AND PCODNACAO.DESCRICAO = PPESSOA.NACIONALIDADE JOIN PCODINSTRUCAO ON PCODINSTRUCAO.CODCLIENTE = PPESSOA.CODIGO AND PCODINSTRUCAO.DESCRICAO = PPESSOA.GRAUINSTRUCAO JOIN PCODESTCIVIL ON PCODESTCIVIL.CODCLIENTE = PPESSOA.CODIGO AND PCODESTCIVIL.DESCRICAO = PPESSOA.ESTADOCIVIL JOIN PFDEPEND ON PFDEPEND.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFDEPEND.GRAUPARENTESCO = PFUNC.GRAUPARENTESCO Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 13 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 13 de Setembro de 2018 (editado) Bom dia. 1o. Não existe esta coluna PFDEPEND.GRAUPARENTESCO 2o. PCODESTCIVIL.DESCRICAO = PPESSOA.ESTADOCIVIL = um é codigo o outro é descrição 3o. PCODINSTRUCAO.DESCRICAO = PPESSOA.GRAUINSTRUCAO = um é codigo o outro é descrição E por ai vai. Vc tem de fazer relacionamentos onde os campos são a mesma coisa nas duas tabelas e a fonte do relacionamento entre elas. Editado 13 de Setembro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 13 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 13 de Setembro de 2018 (editado) Ver na mensagem abaixo ! Editado 13 de Setembro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 13 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 13 de Setembro de 2018 (editado) ACERTADO !!!! FROM PFUNC (NOLOCK) INNER JOIN PPESSOA (NOLOCK) ON PFUNC.CODPESSOA = PPESSOA.CODIGO INNER JOIN PFUNCAO (NOLOCK) ON PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO LEFT JOIN GFILIAL (NOLOCK) ON PFUNC.CODFILIAL = GFILIAL.CODFILIAL AND PFUNC.CODCOLIGADA = GFILIAL.CODCOLIGADA LEFT JOIN PFDEPEND (NOLOCK) ON PFUNC.CODCOLIGADA = PFDEPEND.CODCOLIGADA AND PFUNC.CHAPA = PFDEPEND.CHAPA LEFT JOIN PCODNACAO (NOLOCK) ON PPESSOA.NACIONALIDADE = PCODNACAO.CODCLIENTE LEFT JOIN PCODINSTRUCAO (NOLOCK) ON PPESSOA.GRAUINSTRUCAO = PCODINSTRUCAO.CODCLIENTE LEFT JOIN PCODESTCIVIL (NOLOCK) ON PPESSOA.ESTADOCIVIL = PCODESTCIVIL.CODCLIENTE ANTES DO FROM TAMBÉM TEM ERRO NOS CAMPOS DO SELECT. TIPO PCODESTCIVIL, ???? Editado 13 de Setembro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Giuliano Postado 13 de Setembro de 2018 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 4 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 30 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 49 Denunciar Compartilhar Postado 13 de Setembro de 2018 Olá Gabriela, Não sei se você já trabalha assim. Lendo seu post e vendo o print que enviou me parece que você está aplicando direto no Reports a consulta SQL que deseja retornar os dados. Se for isso minha sugestão é testar antes a consulta diretamente em um cliente de acesso ao seu SGBD. Nele você conseguirá ver de imediato erros na consulta e checar as duplicidades de registro. Vai te ajudar muito. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gabriela Borin Postado 13 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Autor Denunciar Compartilhar Postado 13 de Setembro de 2018 Olá Giuliano!! Não estou direto no Reports, eu faço o teste na própria SQL antes de vincular ao relatório. Mas obrigada pela dica. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gabriela Borin Postado 13 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Autor Denunciar Compartilhar Postado 13 de Setembro de 2018 1 hora atrás, omar disse: ACERTADO !!!! FROM PFUNC (NOLOCK) INNER JOIN PPESSOA (NOLOCK) ON PFUNC.CODPESSOA = PPESSOA.CODIGO INNER JOIN PFUNCAO (NOLOCK) ON PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO LEFT JOIN GFILIAL (NOLOCK) ON PFUNC.CODFILIAL = GFILIAL.CODFILIAL AND PFUNC.CODCOLIGADA = GFILIAL.CODCOLIGADA LEFT JOIN PFDEPEND (NOLOCK) ON PFUNC.CODCOLIGADA = PFDEPEND.CODCOLIGADA AND PFUNC.CHAPA = PFDEPEND.CHAPA LEFT JOIN PCODNACAO (NOLOCK) ON PPESSOA.NACIONALIDADE = PCODNACAO.CODCLIENTE LEFT JOIN PCODINSTRUCAO (NOLOCK) ON PPESSOA.GRAUINSTRUCAO = PCODINSTRUCAO.CODCLIENTE LEFT JOIN PCODESTCIVIL (NOLOCK) ON PPESSOA.ESTADOCIVIL = PCODESTCIVIL.CODCLIENTE ANTES DO FROM TAMBÉM TEM ERRO NOS CAMPOS DO SELECT. TIPO PCODESTCIVIL, ???? Eu coloquei desta forma e a SQL não apresentou erro. Porém não busca os dados, quando eu executo a SQL ela fica em branco. Eu estou tendo dificuldade de fazer essa SQL porque alguns dados eu preciso da descrição, como Estado Civil, Nacionalidade, Grau de Instrução, e na tabela PFUNC esses dados estão com código. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 13 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 13 de Setembro de 2018 (editado) AND (PFDEPEND.GRAUPARENTESCO = '6'OR PFDEPEND.GRAUPARENTESCO = '7') Vc tinha colocado and. Como o dependente não pode ser 6 e 7 ao mesmo tempo não vem nada. Também: Devido este campo no select PFDEPEND.GRAUPARENTESCO, em alguns casos onde existem vários dependentes do tipo 6 ou 7, vai duplicar os resultados. Editado 13 de Setembro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gabriela Borin Postado 13 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Autor Denunciar Compartilhar Postado 13 de Setembro de 2018 Entendi.. Deu certo a execução da SQL, puxou os dados certinho. Só me tira uma dúvida, no relatório eu preciso que ele puxe o nome da mãe e do pai, quando eu coloco o campo que informei no SELECT ele puxa o nome do primeiro dependente que seria o pai (por ser código 6), não tem como eu colocar dentro do SELECT que eu quero que ele busca o nome do dependente se o grau de parentesco por 6 por exemplo? Tipo algo assim: PFDEPEND.NOME (SE PFDEPEND.GRAUPARENTESCO ='6') AS NOME_PAI (não sei se tem como colocar a função SE dentro da SQL, você entendeu o que quero dizer? Preciso encontrar uma forma de especificar que aquele campo é para ele puxar o nome do pai e no outro o da mãe. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gabriela Borin Postado 13 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Autor Denunciar Compartilhar Postado 13 de Setembro de 2018 Eu consegui criar a SQL com a condição dentro do SELECT: IIF (PFDEPEND.GRAUPARENTESCO='6',PFDEPEND.NOME,'') AS NOME_PAI, IIF (PFDEPEND.GRAUPARENTESCO='7',PFDEPEND.NOME,'') AS NOME_MAE Deu certo, mas ele puxa duas linhas, uma com o nome da mãe e outra com o nome do pai, será que não dá para colocar tudo na mesma linha? Porque dessa forma, dentro do relatório ele só puxa um, não puxa os dois nomes. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Solução omar Postado 13 de Setembro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Solução Denunciar Compartilhar Postado 13 de Setembro de 2018 (editado) Eu tenho um select que puxa nome do pai e mae numa unica linha: SELECT PFUNC.CODCOLIGADA, PFUNC.CHAPA, PPESSOA.NOME, PPESSOA.DTNASCIMENTO, PFUNCAO.NOME AS FUNCAO, PPESSOA.CPF, PPESSOA. CARTIDENTIDADE, DEP1.NOME AS PAI, DEP2.NOME AS MAE, PFUNC.CODSITUACAO FROM PPESSOA (NOLOCK) INNER JOIN PFUNC (NOLOCK) ON PPESSOA.CODIGO = PFUNC.CODPESSOA INNER JOIN PFUNCAO (NOLOCK) ON PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO LEFT JOIN PFDEPEND AS DEP1(NOLOCK) ON ( PFUNC.CODCOLIGADA = DEP1.CODCOLIGADA AND PFUNC.CHAPA = DEP1.CHAPA ) AND DEP1.GRAUPARENTESCO = '6' LEFT JOIN PFDEPEND AS DEP2(NOLOCK) ON ( PFUNC.CODCOLIGADA = DEP2.CODCOLIGADA AND PFUNC.CHAPA = DEP2.CHAPA ) AND DEP2.GRAUPARENTESCO = '7' WHERE PFUNC.CODSITUACAO <> 'D' ORDER BY PFUNC.NOME Editado 13 de Setembro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gabriela Borin Postado 14 de Setembro de 2018 Tópicos Que Criei: 14 Tópicos/Dia: 0.01 Meu Conteúdo: 39 Conteúdo/Dia: 0.02 Reputação: 2 Pontos/Conquistas: 332 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 35 Autor Denunciar Compartilhar Postado 14 de Setembro de 2018 Deu certo Omar!! Muito obrigada, ficou perfeita a SQL. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
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.