mamartins25 Postado 28 de Março de 2022 Tópicos Que Criei: 9 Tópicos/Dia: 0.01 Meu Conteúdo: 22 Conteúdo/Dia: 0.03 Reputação: 4 Pontos/Conquistas: 205 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 28 de Março de 2022 Pessoal, gostaria de saber quais são os Tipos de MOVIMENTOS e as naturezas associadas a ela. Alguém tem esse relatório ou query? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 28 de Março de 2022 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 28 de Março de 2022 @mamartins25, boa noite! Podes verificar as naturezas inclusas no movimento a partir dessa query: USE CorporeRM GO SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT T.CODCOLIGADA ,T.CODTMV ,D.CODNAT AS 'CODNAT_FORAESTADO' ,TE.IDNATFORAESTADO ,D2.CODNAT AS 'CODNAT_FORAESTADO2' ,TE.IDNATFORAESTADO2 FROM DBO.TTMV T JOIN DBO.TTMVEXT TE ON (T.CODCOLIGADA = TE.CODCOLIGADA AND T.CODTMV = TE.CODTMV) LEFT JOIN DBO.DCFOP D ON (D.CODCOLIGADA = TE.CODCOLIGADA AND D.IDNAT = TE.IDNATFORAESTADO) LEFT JOIN DBO.DCFOP D2 ON (D.CODCOLIGADA = TE.CODCOLIGADA AND D2.IDNAT = TE.IDNATFORAESTADO2) WHERE T.CODCOLIGADA = 1 GO Porém, caso utilize nestes parâmetros naturezas sintéticas, dai teremos que fazer uma query um pouco diferente... criando uma recursividade para resultar todas as naturezas. Lembrando que nessa tabela TTMVEXT tem a regra do movimento que pode ser mais restringida com a regra da própria natureza. Espero que ajude. Abraços. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
mamartins25 Postado 30 de Março de 2022 Tópicos Que Criei: 9 Tópicos/Dia: 0.01 Meu Conteúdo: 22 Conteúdo/Dia: 0.03 Reputação: 4 Pontos/Conquistas: 205 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Autor Denunciar Compartilhar Postado 30 de Março de 2022 @luisgustavogomes Muito obrigado pela resposta. ajudou bastante. Porém ela não está trazendo todos os movimentos, pois dentro do movimento temos natureza sintética(como vc mesmo cita essa possibilidade) e dentro do item é analítica. Como seria essa query criando uma recursividade para resultar todas as naturezas? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 30 de Março de 2022 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 30 de Março de 2022 @mamartins25, bom dia! Ótimo que conseguiu lhe ajudar um pouco... irei demonstrar na sequência como ficaria essa query, porém fiquei preocupado com sua alegação de não trazer todos os movimento!? Pois a query verifica a lista de movimento cadastrado e os seus parâmetros da natureza possíveis de utilização. Nos itens (caso assim configure) a aplicação só deixará as analíticas das naturezas do movimento. Se essa alegação estiver correta, ou seja, "Quais são as possíveis naturezas analíticas a serem utilizadas por movimento e seus itens" se for criamos a consulta com a recursividade. No aguardo. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 30 de Março de 2022 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 30 de Março de 2022 (editado) @mamartins25, Boa tarde! Segue um possível resultado. abraços. USE CorporeRM GO SET NOCOUNT ON; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; ;WITH TAB_DADOS AS ( SELECT T.CODCOLIGADA ,T.CODTMV ,T.IDNAT ,D.CODNAT AS 'CODNAT' ,TE.IDNATFORAESTADO ,DF.CODNAT AS 'CODNAT_FORAESTADO' ,T.IDNAT2 ,D2.CODNAT AS 'CODNAT2' ,TE.IDNATFORAESTADO2 ,DF2.CODNAT AS 'CODNAT_FORAESTADO2' FROM DBO.TTMV T JOIN DBO.TTMVEXT TE ON (T.CODCOLIGADA = TE.CODCOLIGADA AND T.CODTMV = TE.CODTMV) LEFT JOIN DBO.DCFOP D ON (D.CODCOLIGADA = TE.CODCOLIGADA AND D.IDNAT = T.IDNAT) LEFT JOIN DBO.DCFOP D2 ON (D2.CODCOLIGADA = TE.CODCOLIGADA AND D2.IDNAT = T.IDNAT2) LEFT JOIN DBO.DCFOP DF ON (DF.CODCOLIGADA = TE.CODCOLIGADA AND DF.IDNAT = TE.IDNATFORAESTADO) LEFT JOIN DBO.DCFOP DF2 ON (DF.CODCOLIGADA = TE.CODCOLIGADA AND DF2.IDNAT = TE.IDNATFORAESTADO2) WHERE T.CODCOLIGADA = 1 ) , TAB_RESULTADO AS ( SELECT T.CODCOLIGADA ,T.CODTMV ,'NATUREZA' AS 'CAMPO' ,T.IDNAT AS 'PARAM_IDNAT' ,T.CODNAT AS 'PARAM_CODNAT' ,COALESCE(T1.IDNAT, T.IDNAT) AS 'IDNAT' ,COALESCE(T1.CODNAT,T.CODNAT,'Não inf.' ) AS 'CODNAT' FROM TAB_DADOS T OUTER APPLY ( SELECT D1.IDNAT, D1.CODNAT FROM DBO.DCFOP D1 WHERE D1.CODCOLIGADA = T.CODCOLIGADA AND D1.CODNAT LIKE T.CODNAT + '%' AND LEN(D1.CODNAT)=8 AND LEN(T.CODNAT)<>8 ) T1 UNION SELECT T.CODCOLIGADA ,T.CODTMV ,'NATUREZA FORAESTADO' AS 'CAMPO' ,T.IDNATFORAESTADO AS 'PARAM_IDNAT' ,T.CODNAT_FORAESTADO AS 'PARAM_CODNAT' ,COALESCE(T1.IDNAT, T.IDNATFORAESTADO ) AS 'IDNAT' ,COALESCE(T1.CODNAT, T.CODNAT_FORAESTADO, 'Não inf.' ) AS 'CODNAT' FROM TAB_DADOS T OUTER APPLY ( SELECT D1.IDNAT, D1.CODNAT FROM DBO.DCFOP D1 WHERE D1.CODCOLIGADA = T.CODCOLIGADA AND D1.CODNAT LIKE T.CODNAT_FORAESTADO + '%' AND LEN(D1.CODNAT)=8 AND LEN(T.CODNAT_FORAESTADO)<>8 ) T1 UNION SELECT T.CODCOLIGADA ,T.CODTMV ,'NATUREZA 2' AS 'CAMPO' ,T.IDNAT2 AS 'PARAM_IDNAT' ,T.CODNAT2 AS 'PARAM_CODNAT' ,COALESCE(T1.IDNAT, T.IDNAT2 ) AS 'IDNAT' ,COALESCE(T1.CODNAT, T.CODNAT2,'Não inf.' ) AS 'CODNAT' FROM TAB_DADOS T OUTER APPLY ( SELECT D1.IDNAT, D1.CODNAT FROM DBO.DCFOP D1 WHERE D1.CODCOLIGADA = T.CODCOLIGADA AND D1.CODNAT LIKE T.CODNAT2 + '%' AND LEN(D1.CODNAT)=8 AND LEN(T.CODNAT2)<>8 ) T1 UNION SELECT T.CODCOLIGADA ,T.CODTMV ,'NATUREZA FORAESTADO 2' AS 'CAMPO' ,T.IDNATFORAESTADO2 AS 'PARAM_IDNAT' ,T.CODNAT_FORAESTADO2 AS 'PARAM_CODNAT' ,COALESCE(T1.IDNAT, T.IDNATFORAESTADO2) AS 'IDNAT' ,COALESCE(T1.CODNAT, T.CODNAT_FORAESTADO2,'Não inf.' ) AS 'CODNAT' FROM TAB_DADOS T OUTER APPLY ( SELECT D1.IDNAT, D1.CODNAT FROM DBO.DCFOP D1 WHERE D1.CODCOLIGADA = T.CODCOLIGADA AND D1.CODNAT LIKE T.CODNAT_FORAESTADO2 + '%' AND LEN(D1.CODNAT)=8 AND LEN(T.CODNAT_FORAESTADO2)<>8 ) T1 ) SELECT R.CODCOLIGADA ,R.CODTMV ,R.CAMPO ,R.PARAM_IDNAT ,R.PARAM_CODNAT ,R.IDNAT ,R.CODNAT FROM TAB_RESULTADO R Editado 30 de Março de 2022 por luisgustavogomes De CROSS para OUTER APPLY Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
mamartins25 Postado 30 de Março de 2022 Tópicos Que Criei: 9 Tópicos/Dia: 0.01 Meu Conteúdo: 22 Conteúdo/Dia: 0.03 Reputação: 4 Pontos/Conquistas: 205 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Autor Denunciar Compartilhar Postado 30 de Março de 2022 @luisgustavogomes Nossa Luiz, ficou muito completo. Muito obrigado pela ajuda. Você é fera meu amigo. 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 30 de Março de 2022 Tópicos Que Criei: 899 Tópicos/Dia: 0.14 Meu Conteúdo: 8.842 Conteúdo/Dia: 1.34 Reputação: 310 Pontos/Conquistas: 106.579 Conteúdo Resolvido: 0 Dias Ganho: 195 Status: Offline Idade: 52 Dispositivo: Windows Denunciar Compartilhar Postado 30 de Março de 2022 Luis... se possível, posta uma imagem de como que fica o retorno dessa sentença montado desta forma que sugeriu Ficaria bem visível a todos. 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 30 de Março de 2022 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 30 de Março de 2022 @Jair - Fórmula, boa tarde! Claro, só fiz uma alteração na query "estava usando CROSS e alterei para OUTER apply" Abraços 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 30 de Março de 2022 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 30 de Março de 2022 @mamartins25 Esqueci de comentar que não foi preciso utilizar recursividade, pois a tabela DLAF monta a BTREE SIMPLE na visão conforme o código... diferente, por exemplo DBO.MRECCMP que tem a hierarquia nas tabelas na relação de PAI para FILHO. Abraços. 1 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.