Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Dúvida em uma sentença


Posts Recomendados


  • Tópicos Que Criei:  9
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  24
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  210
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  42

Pessoal, boa tarde!

Não consegui resolver ate hoje um problema com a sentença SQL referente a retirada de dados do RM Nucleus,

hoje ela me traz somente o VALOR BRUTO dos produtos comprados por CENTRO DE CUSTO, porem eu preciso que me traga o VALOR LÍQUIDO dos produos comprados por CENTRO DE CUSTO, eu estava precisando desse valor líquido, seria mais ou menos assim: TITMMOV.PRECOUNITARIO * TITMMOV.QUANTIDADE - TITMMOV.RATEIODESC + TITMMOV.RATEIODESP + TITMMOV.RATEIOFRETE + TTRBMOV.VALOR (SE FOR 'IPI' E 'ICMS') - TTRBMOV.VALOR (SE FOR 'IRRF' E 'ISS-RF'),mais não consigo pois por conter vários itens e cada item com vários rateios, o valor retornado é absurdo,

por favor se alguem puder me ajudar, segue a sentença:

SELECT DAY(TMOV.DATAEMISSAO) AS DIA, YEAR(TMOV.DATAEMISSAO) AS ANO,

CASE WHEN MONTH(TMOV.DATAEMISSAO) = 1 THEN '01-JANEIRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 2 THEN '02-FEVEREIRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 3 THEN '03-MARÇO'

WHEN MONTH(TMOV.DATAEMISSAO) = 4 THEN '04-ABRIL'

WHEN MONTH(TMOV.DATAEMISSAO) = 5 THEN '05-MAIO'

WHEN MONTH(TMOV.DATAEMISSAO) = 6 THEN '06-JUNHO'

WHEN MONTH(TMOV.DATAEMISSAO) = 7 THEN '07-JULHO'

WHEN MONTH(TMOV.DATAEMISSAO) = 8 THEN '08-AGOSTO'

WHEN MONTH(TMOV.DATAEMISSAO) = 9 THEN '09-SETEMBRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 10 THEN '10-OUTUBRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 11 THEN '11-NOVEMBRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 12 THEN '12-DEZEMBRO'

END AS MÊS, TMOV.CODTMV + ' - ' + TTMV.NOME AS [TIPO_MOV], FCFO.CODCFO + ' - ' + FCFO.NOMEFANTASIA AS DADOS_FORNECEDOR,

TMOV.NUMEROMOV AS Nº_MOV, TPRD.NOMEFANTASIA AS DECRICAO_PROD, TITMMOV.QUANTIDADE,

CASE WHEN TMOV.CODTB1FLX = '1.037'

THEN (SELECT TOP 1 FLAN.VALORORIGINAL

FROM FLAN

WHERE FLAN.IDMOV = TMOV.IDMOV AND

FLAN.DATAEMISSAO >=:DATAINICIAL_D AND

FLAN.DATAEMISSAO <=:DATAFINAL_D)

ELSE

(TITMMOVRATCCU.VALOR) END AS VALOR_BRUTO,

--**** Aqui esta o meu problema ****--

(TITMMOVRATCCU.VALOR ) AS VALOR_LIQUIDO,

GCCUSTO.NOME, TMOV.USUARIOCRIACAO AS SOLICITANTE, TTB2.DESCRICAO AS DEPTO_SOLICITANTE,

CASE TMOV.STATUS

WHEN 'A' THEN 'MOV. INCLUÍDO E AINDA NÃO RECEBIDO'

WHEN 'F' THEN 'MOV. RECEBIDO'

WHEN 'C' THEN 'MOV. CANCELADO'

WHEN 'Q' THEN 'MOV. JÁ RECEBIDO E PAGO'

END AS STATUS, TTB3.DESCRICAO AS OPERACAO, TMOV.CODFILIAL AS FILIAL, FTCF.DESCRICAO AS TIPO_CLIFOR

FROM TMOV

INNER JOIN TITMMOV

ON TMOV.CODCOLIGADA = TITMMOV.CODCOLIGADA AND TMOV.IDMOV = TITMMOV.IDMOV

LEFT JOIN TTB3

ON TTB3.CODCOLIGADA = TMOV.CODCOLIGADA AND TTB3.CODTB3FAT = TMOV.CODTB3FAT

INNER JOIN FCFO

ON FCFO.CODCOLIGADA = TMOV.CODCOLIGADA AND

FCFO.CODCFO = TMOV.CODCFO

LEFT JOIN FTCF

ON FTCF.CODCOLIGADA = FCFO.CODCOLTCF AND

FTCF.CODTCF = FCFO.CODTCF

INNER JOIN TTMV

ON TTMV.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTMV.CODTMV = TMOV.CODTMV

INNER JOIN TITMMOVRATCCU

ON TITMMOV.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

TITMMOV.IDMOV = TITMMOVRATCCU.IDMOV AND

TITMMOV.NSEQITMMOV = TITMMOVRATCCU.NSEQITMMOV

LEFT JOIN TTB2

ON TTB2.CODCOLIGADA = TMOV.CODCOLIGADA AND TTB2.CODTB2FAT = TMOV.CODTB2FAT

INNER JOIN TPRD

ON TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA AND TPRD.IDPRD = TITMMOV.IDPRD

INNER JOIN GCCUSTO

ON GCCUSTO.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

GCCUSTO.CODCCUSTO = TITMMOVRATCCU.CODCCUSTO

WHERE TMOV.CODTMV IN ('1.2.01','1.2.02','1.2.03','1.2.04','1.2.05','1.2.06','1.2.07','1.2.08','1.2.10','1.2.12','1.2.13','1.1.04','2.2.06','2.2.07','1.1.03')

AND GCCUSTO.CODCCUSTO LIKE :CENTRODECUSTO_S + '%' AND TMOV.DATAEMISSAO >=:DATAINICIAL_D AND TMOV.DATAEMISSAO <=:DATAFINAL_D

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  86
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  255
  • Conteúdo/Dia:  0.05
  • Reputação:   0
  • Pontos/Conquistas:  2.325
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Thiago bom dia

- Sinto não poder de ajudar, faço parte desse fórum +- um mês, estou tbm com um problema numa Consulta que post algum dias atrás, aguardo a ajuda dos colegas DBA para help.

- Thiago não tenha muita experiência com consultas SQL, na sua sentença abaixo entendi alguma coisas apenas, gostaria de saber como posso aprender a desenvolver uma consulta como a sua??

- Aqui na empresa estão parametrizando o Nucleus, Fluxus, Agilis, Factor e outros. fui contrato para desenvolver relatórios para empresa.

- Meu nível de conhecimento SQL seria acima um pouca acima do Básico ..

- Muito Obrigado

- Desculpa por não pode te ajudar.!

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  86
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  255
  • Conteúdo/Dia:  0.05
  • Reputação:   0
  • Pontos/Conquistas:  2.325
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

- Thiago

- Estou na luta, adiar sim, desistir Nunca...

- Gostaria de contar com sua Experiência com as consultas SQL!

Vlw

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Thiago, vou dar uma olhada na sua query. Só que vai demorar mais do que eu imaginava.

Um dos problemas é a parametrização da sua base. Na que eu estou usando não tem o rateio de centro de custo por movimento. Ai. como vc bem sabe, tenho que parametrizar para ver o que dá....

VC já conseguiu alguma coisa mais?

e ai pessoal da uma força ai pra mim...
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Thiago explique melhor.

Gerei um movimento na minha base com dois itens e em cada item dois rateios de centro de custo, ok?

rodei sua query e apareceu na coluna do problema, valor bruto e liquido, o mesmo valor, porque as duas colunas estão usando chamando a TITMMOVRATCCU.VALOR.

OBS. Salve o arquivo e renomeie para XLS

Não entendi...

espero sua resposta.

- Thiago

- Estou na luta, adiar sim, desistir Nunca...

- Gostaria de contar com sua Experiência com as consultas SQL!

Vlw

PROBLEMA.pdf

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Como vai Thiago?

Acho que eu entendi, mas se minha resposta for tola, avise-me. Ok?

Acho que esse problema deve ser resolvido com o esquema de peso (percentuais).

Então devemos saber quanto cada item pesa no total da NF.

No teste que fiz, utilizei apenas o tmov.valordesc.

Ficou assim

TITMMOVRATCCU.VALOR -

(tmov.valordesc *

((TITMMOVRATCCU.VALOR / tmov.valorbruto)* 100)

/100)

Para você ver como chegeui a esse calculo estou anexando uma tabela excel. Ok?

Abraço

dan_trash

Bom dia dan_trash!!!

E o Sequinte, uma das colunas deve buscar o valor bruto mesmo, ate ai ok!!!

porem se no movimento tiver desconto (TMOV.VALORDESC) ou (TITMMOV.RATEIODESC), + valor de despesa + valor do frete + se tiver imposto referente a IPI ou ICMS e acrescentado no valor e se tiver IRRF ou INSSRF ou ISS-RF e deduzido do valor ( AI SIM EU OBTERIA O MEU VALOR LÍQUIDO)

Eu ja tentei pegar o valor líquido direto da TMOV (TMOV.VALORLIQUIDO) porem devido aos relacionamentos com a TITMMOVRATCCU, TTRBMMOV os valores retornados não são coerentes,

e este cubo precisa ser pelo Centro de custo.

Não sei se eu consegui te explicar ou complicar mais...

valeu pela atenção!!!

Thiago.rar

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Bem estranho. Isso não deveria influenciar na quantidade de registros.

Aqui, no meu teste, eu cadastrei uma nf com dois itens. E cada item com dois rateios de centro de custo. Tem um detalhe: eu usei sua primeira query. É nessa que você esta fazendo os testes?

Acho que vc já deve esta fazendo isso, mas não custa nada falar =).

E se vc fizer um nf teste, com 2 itens e para cada 2 rateios de custo. Rode a sentença e veja os resultados. Depois coloque um valor de desconto e veja como ela se comporta.

Você chegou a ver a planilhinha que te mandei.... isso é o espelho do meu teste.

Outra coisa vc só tem uma coligada?

tem um pequeno problema no seu join de fornecedor:

INNER JOIN FCFO

ON FCFO.CODCOLIGADA = TMOV.CODCOLIGADA AND

FCFO.CODCFO = TMOV.CODCFO

o correto seria

INNER JOIN FCFO

ON FCFO.CODCOLIGADA = TMOV.CODCOLCFO AND

FCFO.CODCFO = TMOV.CODCFO

Eu vou bem e você?

kara infelizmente num deu certo não, porque aqui e por rateio tem itens meu aqui que são rateados para +/- uns 30 centros de custo, mais de jeito que você me informou não sei porque ele reduz somente a 2 centros de custo

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Bem estranho. Fiz o teste aqui com vários rateios no item dois. e funcionou bacaninha, como vc pode conferir na planilha anexa.

Eu usei essa sentença:

SELECT

tmov.idmov,titmmov.nseqitmmov,TITMMOVRATCCU.codccusto,

DAY(TMOV.DATAEMISSAO) AS DIA, YEAR(TMOV.DATAEMISSAO) AS ANO,

CASE WHEN MONTH(TMOV.DATAEMISSAO) = 1 THEN '01-JANEIRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 2 THEN '02-FEVEREIRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 3 THEN '03-MARÇO'

WHEN MONTH(TMOV.DATAEMISSAO) = 4 THEN '04-ABRIL'

WHEN MONTH(TMOV.DATAEMISSAO) = 5 THEN '05-MAIO'

WHEN MONTH(TMOV.DATAEMISSAO) = 6 THEN '06-JUNHO'

WHEN MONTH(TMOV.DATAEMISSAO) = 7 THEN '07-JULHO'

WHEN MONTH(TMOV.DATAEMISSAO) = 8 THEN '08-AGOSTO'

WHEN MONTH(TMOV.DATAEMISSAO) = 9 THEN '09-SETEMBRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 10 THEN '10-OUTUBRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 11 THEN '11-NOVEMBRO'

WHEN MONTH(TMOV.DATAEMISSAO) = 12 THEN '12-DEZEMBRO'

END AS MÊS,

TMOV.CODTMV + ' - ' + TTMV.NOME AS [TIPO_MOV], FCFO.CODCFO + ' - ' + FCFO.NOMEFANTASIA AS DADOS_FORNECEDOR,

TMOV.NUMEROMOV AS Nº_MOV, TPRD.NOMEFANTASIA AS DECRICAO_PROD, TITMMOV.QUANTIDADE,

CASE WHEN TMOV.CODTB1FLX = '1.037'

THEN (

SELECT TOP 1 FLAN.VALORORIGINAL

FROM FLAN

WHERE FLAN.IDMOV = TMOV.IDMOV

)

ELSE

(TITMMOVRATCCU.VALOR) END AS VALOR_BRUTO,

'**** Aqui esta o meu problema ****--',

(TITMMOVRATCCU.VALOR ) AS VALOR_LIQUIDO,

/*Percentual da nf por item*/

TITMMOVRATCCU.VALOR -

(tmov.valordesc *

((TITMMOVRATCCU.VALOR / tmov.valorbruto)* 100)

/100)

FROM TMOV INNER JOIN TITMMOV ON (TMOV.CODCOLIGADA = TITMMOV.CODCOLIGADA AND TMOV.IDMOV = TITMMOV.IDMOV)

LEFT JOIN TTB3 ON (TTB3.CODCOLIGADA = TMOV.CODCOLIGADA AND TTB3.CODTB3FAT = TMOV.CODTB3FAT)

INNER JOIN FCFO ON (FCFO.CODCOLIGADA = TMOV.CODCOLCFO AND FCFO.CODCFO = TMOV.CODCFO) /*ESTAVA ERRADO*/

LEFT JOIN FTCF ON (FTCF.CODCOLIGADA = FCFO.CODCOLTCF AND FTCF.CODTCF = FCFO.CODTCF)

INNER JOIN TTMV ON (TTMV.CODCOLIGADA = TMOV.CODCOLIGADA AND TTMV.CODTMV = TMOV.CODTMV)

INNER JOIN TITMMOVRATCCU ON (TITMMOV.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND TITMMOV.IDMOV = TITMMOVRATCCU.IDMOV AND TITMMOV.NSEQITMMOV = TITMMOVRATCCU.NSEQITMMOV)

LEFT JOIN TTB2 ON (TTB2.CODCOLIGADA = TMOV.CODCOLIGADA AND TTB2.CODTB2FAT = TMOV.CODTB2FAT)

INNER JOIN TPRD ON (TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA AND TPRD.IDPRD = TITMMOV.IDPRD)

INNER JOIN GCCUSTO ON (GCCUSTO.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND GCCUSTO.CODCCUSTO = TITMMOVRATCCU.CODCCUSTO)

WHERE tmov.idmov = 465454

Segue em anexo +/- como deveria ser retornado a sentença...

Thiago2.rar

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Beleza Thiago.

Amanha pela manha vou dar uma olhada nisso que vc apontou e ver se há solução. OK?

KARA OLHANDO BEM NUM DA CERTO NAUM

POIS QUANDO NÃO HOUVER DESCONTO ELE FAZ COM QUE O VALOR LÍQUIDO RETORNE (NULL)

E NÃO CONSIGO RELACIONAR A TTRBMOV (REFERENTE AOS TRIBUTOS) QUANDO EU RELACIONO ESTA TABELA FICA MUITO LOUCO O RETORNO

E SE EU TENTO PEGAR ESTES VALOR POR SUBQUERY'S ACONTECE COMO CITADO ACIMA, SE TIVER TRIBUTO , BLZ, SE NÃO TIVER RETORNA (NULL) EM TUDO

MESMO COLOCANDO A REGRA ISNULL (TMOV.VALORDESC,0) RETORNA (NULL)

?????

Link para comentar
Compartilhar em outros sites


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

Tiago, se não estou enganado a RM possui uma tabela de impostos para itens do produto, basta fazer um Join.

Trabalhe também com sub-select para na sua select principal.

Duvidas poste aqui novamente.

:Valeu:

Nelson Borges

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Fiz um pequeno teste e retirei o valor de desconto.

O resultado do valor liquido foi positivo.

Que será que pode estar acontecendo na sua sentença?

Beleza Thiago.

Amanha pela manha vou dar uma olhada nisso que vc apontou e ver se há solução. OK?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  18
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  90
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Fiz o teste que vc pediu. Realmente apareceu null, mas apenas coloquei o isnull no tmov.valordesc e funcionou.

Esse negócio de dividir pela quantidade de rateios, ao meu ver, não parece elegante.

Para eu tentar simular o que acontece, diga-me se os tributos estão no item ou no movimento.

Obrigado

faça um novo lançamento, onde o campo desconto estara limpo ( sem o zero (0) ).

Eu fiz uma nova sentença para tirar uma dúvida, eu peguei os campos da TITMMOV e dividi cada um por 22 que representa a quantidade de centros de custo alocados em um movimento, ai deu certo, em partes...

pois para as subquery de tributos se tiver tributo no movimento blz, traz certinho, mais se não tiver.... traz tudo "NULL"

e como eu farei pra ele trazer esse número 22? Não tenho nem idéia???

Segue a sentença:

SELECT

/* INÍCIO DO CÁLCULO DO VALOR LÍQUIDO, O NÚMERO 22 REPRESENTA A QUANTIDADE DE CENTROS DE CUSTO RATEADOS */

(TITMMOV.VALORTOTALITEM / 22 ) - (ISNULL (TITMMOV.RATEIODESC,0) / 22)

+ (ISNULL (TITMMOV.RATEIODESP,0) / 22) + (ISNULL (TITMMOV.RATEIOFRETE,0) /22)

/* INÍCIO DO CÁLCULO DE TRIBUTOS, SE FOR "IPI" OU "ICMS" ELE SOMA NO VALOR LÍQUIDO */

+ (SELECT SUM (ISNULL (TTRBMOV.VALOR,0))

FROM TTRBMOV

WHERE TITMMOV.CODCOLIGADA = TTRBMOV.CODCOLIGADA AND

TITMMOV.IDMOV = TTRBMOV.IDMOV AND

TITMMOV.NSEQITMMOV = TTRBMOV.NSEQITMMOV AND

TTRBMOV.CODTRB IN ('IPI','ICMS') )

/* INÍCIO DO CÁLCULO DE TRIBUTOS, SE FOR "IRRF" OU "INSSRF" OU "ISS-RF" ELE SUBTRAI NO VALOR LÍQUIDO */

- (SELECT SUM (ISNULL (TTRBMOV.VALOR,0))

FROM TTRBMOV

WHERE TITMMOV.CODCOLIGADA = TTRBMOV.CODCOLIGADA AND

TITMMOV.IDMOV = TTRBMOV.IDMOV AND

TITMMOV.NSEQITMMOV = TTRBMOV.NSEQITMMOV AND

TTRBMOV.CODTRB IN ('IRRF','INSSRF','ISS-RF') ) AS VALOR_LÍQUIDO

/* PROBLEMA ==> SE NÃO HOUVER TRIBUTOS ELE FAZ COM QUE O VALOR LÍQUIDO RETORNE "NULL",

E COMO EU IREI FAZER? PARA TRAZER A QUANTIDADE DE CENTROS DE CUSTOS QUE EU RATIEI PARA

O MEU MOVIMENTO? */

/* RELACIONAMENTOS */

FROM TMOV

INNER JOIN TITMMOV

ON (TMOV.CODCOLIGADA = TITMMOV.CODCOLIGADA AND

TMOV.IDMOV = TITMMOV.IDMOV)

LEFT JOIN TTB3

ON (TTB3.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTB3.CODTB3FAT = TMOV.CODTB3FAT)

INNER JOIN FCFO

ON (FCFO.CODCOLIGADA = TMOV.CODCOLCFO AND

FCFO.CODCFO = TMOV.CODCFO)

LEFT JOIN FTCF

ON (FTCF.CODCOLIGADA = FCFO.CODCOLTCF AND

FTCF.CODTCF = FCFO.CODTCF)

INNER JOIN TTMV

ON (TTMV.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTMV.CODTMV = TMOV.CODTMV)

INNER JOIN TITMMOVRATCCU

ON (TITMMOV.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

TITMMOV.IDMOV = TITMMOVRATCCU.IDMOV AND TITMMOV.NSEQITMMOV = TITMMOVRATCCU.NSEQITMMOV)

LEFT JOIN TTB2

ON (TTB2.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTB2.CODTB2FAT = TMOV.CODTB2FAT)

INNER JOIN TPRD

ON (TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA AND

TPRD.IDPRD = TITMMOV.IDPRD)

INNER JOIN GCCUSTO

ON (GCCUSTO.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

GCCUSTO.CODCCUSTO = TITMMOVRATCCU.CODCCUSTO)

/* FILTRO */

WHERE TMOV.IDMOV = 33927

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  9
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  24
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  210
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  42

FAZENDO COMO A SENTENÇA ABAIXO SE O MOVIMENTO TIVER TRIBUTO OK, SE NÃO TRAZ "NULL", OS TRIBUTOS ESTÃO NO ITEM DO MOVIMENTO, ACRESCENTANDO A SUBQUERY DE TRIBUTOS MESMO COLOCANDO O ISNULL SE NÇAO TIVER TRIBUTOS TRAZ "NULL"

SELECT

(TITMMOVRATCCU.VALOR

+ (SELECT SUM (ISNULL (TTRBMOV.VALOR,0))

FROM TTRBMOV

WHERE TITMMOV.CODCOLIGADA = TTRBMOV.CODCOLIGADA AND

TITMMOV.IDMOV = TTRBMOV.IDMOV AND

TITMMOV.NSEQITMMOV = TTRBMOV.NSEQITMMOV AND

TTRBMOV.CODTRB IN ('IPI','ICMS'))

- (ISNULL (TMOV.VALORDESC,0) * ((TITMMOVRATCCU.VALOR / TMOV.VALORBRUTO)* 100)/100)) AS VALOR_LIQUIDO

FROM TMOV

INNER JOIN TITMMOV

ON (TMOV.CODCOLIGADA = TITMMOV.CODCOLIGADA AND

TMOV.IDMOV = TITMMOV.IDMOV)

LEFT JOIN TTB3

ON (TTB3.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTB3.CODTB3FAT = TMOV.CODTB3FAT)

INNER JOIN FCFO

ON (FCFO.CODCOLIGADA = TMOV.CODCOLCFO AND

FCFO.CODCFO = TMOV.CODCFO)

LEFT JOIN FTCF

ON (FTCF.CODCOLIGADA = FCFO.CODCOLTCF AND

FTCF.CODTCF = FCFO.CODTCF)

INNER JOIN TTMV

ON (TTMV.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTMV.CODTMV = TMOV.CODTMV)

INNER JOIN TITMMOVRATCCU

ON (TITMMOV.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

TITMMOV.IDMOV = TITMMOVRATCCU.IDMOV AND TITMMOV.NSEQITMMOV = TITMMOVRATCCU.NSEQITMMOV)

LEFT JOIN TTB2

ON (TTB2.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTB2.CODTB2FAT = TMOV.CODTB2FAT)

INNER JOIN TPRD

ON (TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA AND

TPRD.IDPRD = TITMMOV.IDPRD)

INNER JOIN GCCUSTO

ON (GCCUSTO.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

GCCUSTO.CODCCUSTO = TITMMOVRATCCU.CODCCUSTO)

WHERE TMOV.IDMOV = 33796

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  9
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  24
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  210
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  42

PESSOAL ALGUEM PODE VER PORQUE O MEU CASE NÃO FUNCIONA???

SELECT

CASE WHEN TMOV.CODTMV IN ('1.2.01')

THEN

(TITMMOVRATCCU.VALOR

+ (SELECT SUM (ISNULL (TTRBMOV.VALOR,0))

FROM TTRBMOV

WHERE TITMMOV.CODCOLIGADA = TTRBMOV.CODCOLIGADA AND

TITMMOV.IDMOV = TTRBMOV.IDMOV AND

TITMMOV.NSEQITMMOV = TTRBMOV.NSEQITMMOV AND

TTRBMOV.CODTRB IN ('IPI','ICMS'))

- (SELECT SUM (ISNULL (TTRBMOV.VALOR,0))

FROM TTRBMOV

WHERE TITMMOV.CODCOLIGADA = TTRBMOV.CODCOLIGADA AND

TITMMOV.IDMOV = TTRBMOV.IDMOV AND

TITMMOV.NSEQITMMOV = TTRBMOV.NSEQITMMOV AND

TTRBMOV.CODTRB IN ('IRRF','INSSRF','ISS-RF'))

- (ISNULL (TMOV.VALORDESC,0) + (ISNULL (TMOV.VALORFRETE,0)) + (ISNULL (TMOV.VALORDESP,0))

* ((TITMMOVRATCCU.VALOR / TMOV.VALORBRUTO)* 100)/100))

ELSE

(TITMMOVRATCCU.VALOR

- (ISNULL (TMOV.VALORDESC,0) + (ISNULL (TMOV.VALORFRETE,0)) + (ISNULL (TMOV.VALORDESP,0))

* ((TITMMOVRATCCU.VALOR / TMOV.VALORBRUTO)* 100)/100))

END AS VALOR_LÍQUIDO

FROM TMOV

INNER JOIN TITMMOV

ON (TMOV.CODCOLIGADA = TITMMOV.CODCOLIGADA AND

TMOV.IDMOV = TITMMOV.IDMOV)

LEFT JOIN TTB3

ON (TTB3.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTB3.CODTB3FAT = TMOV.CODTB3FAT)

INNER JOIN FCFO

ON (FCFO.CODCOLIGADA = TMOV.CODCOLCFO AND

FCFO.CODCFO = TMOV.CODCFO)

LEFT JOIN FTCF

ON (FTCF.CODCOLIGADA = FCFO.CODCOLTCF AND

FTCF.CODTCF = FCFO.CODTCF)

INNER JOIN TTMV

ON (TTMV.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTMV.CODTMV = TMOV.CODTMV)

INNER JOIN TITMMOVRATCCU

ON (TITMMOV.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

TITMMOV.IDMOV = TITMMOVRATCCU.IDMOV AND

TITMMOV.NSEQITMMOV = TITMMOVRATCCU.NSEQITMMOV)

LEFT JOIN TTB2

ON (TTB2.CODCOLIGADA = TMOV.CODCOLIGADA AND

TTB2.CODTB2FAT = TMOV.CODTB2FAT)

INNER JOIN TPRD

ON (TPRD.CODCOLIGADA = TITMMOV.CODCOLIGADA AND

TPRD.IDPRD = TITMMOV.IDPRD)

INNER JOIN GCCUSTO

ON (GCCUSTO.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND

GCCUSTO.CODCCUSTO = TITMMOVRATCCU.CODCCUSTO)

INNER JOIN TTRBMOV

ON (TITMMOV.CODCOLIGADA = TTRBMOV.CODCOLIGADA AND

TITMMOV.IDMOV = TTRBMOV.IDMOV AND

TITMMOV.NSEQITMMOV = TTRBMOV.NSEQITMMOV)

WHERE TMOV.IDMOV = 33796 AND TMOV.CODTMV IN ('1.2.01','1.2.02','1.2.03','1.2.04','1.2.05','1.2.06','1.2.07','1.2.08','1.2.10','1.2.12','1.2.13','1.1.04','2.2.06','2.2.07','1.1.03')

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.