Pesquisar na Comunidade
Showing results for tags 'case'.
Encontrado 2 registros
-
Case não considera campo double precision
um tópico no fórum postou alessandro pancotte Banco de Dados
Pessoal, Tenho este sql abaixo, onde o campo VLTOTALBRUTO esta dando erro de arithimetic por estar zerado em alguns casos. Tentei usar um case para tratar quando for zero nao executar a sentensa do cast, porem ele nao passa pelo case. Ele deveria jogar para a variavel vltotal = 0 qdo o vltotalbruto for 0, caso contrario executar executar o cast, mas mesmo usando o case ele da erro de arithimetic SELECT p.cnpj_cpf, SUBSTRING(p.insc_rg FROM 1 FOR 14), p.tpinsc, m.dataemissao, nf.uf, cast(lpad (m.numdocumento, 6, '0') as varchar(06)), mi.percicms as aliquota, Case When m.vltotalbruto = 0 then 0 else CAST((sum((mi.qtde * mi.vlunitario) + coalesce(mi.vlipi, 0) + ((mi.qtde * mi.vlunitario)*(((coalesce(nf.vloutrasdespesas,0) * 100) / m.vltotalbruto) / 100)) + ((mi.qtde * mi.vlunitario)*(((coalesce(nf.vlseguro,0) * 100) / m.vltotalbruto) / 100)) + ((mi.qtde * mi.vlunitario)*(((coalesce(m.vlfrete,0) * 100) / m.vltotalbruto) / 100)) + coalesce(mi.valoricmsst, 0) - coalesce(mi.vldesconto, 0))) AS NUMERIC(11,2)) end as vltotal, CAST((sum((coalesce(mi.baseicms, 0)))) AS NUMERIC(11,2)) as baseicms, CAST((sum(mi.vlicms)) AS NUMERIC(11,2)) as vlicms, m.situacao, SUBSTRING(nf.modelo from 1 for 2), mi.cfop FROM mov_movimento m JOIN mov_nf nf on (m.cod= nf.cod) JOIN pes_pessoas p on (m.codclifor = p.cod) join g_tpmovimento tp on (m.codtpmovimento = tp.cod) join mov_movitens mi on (m.cod = mi.codmovimento) WHERE m.dataemissao >= :INICIO AND m.dataemissao <= :fim and m.codempresa = :codempresa GROUP BY p.cnpj_cpf, p.insc_rg, p.tpinsc, m.dataemissao, nf.uf, m.numdocumento, mi.percicms, m.situacao, nf.modelo,mi.cfop, m.vltotalbruto -
Olá, tenho uma dúvida em uma aplicação... eu tenho uma tela de escrituração de notas, na qual eu importo os XML's que quiser... agora estou fazendo uma auxiliar que permite que o usuário selecione vários XML de uma vez e importe, assim, eu chamo a tela original de escrituração oculta e vou dando insert a cada arquivo lido no loop. O problema é que quando existem items na qual utilizo Case.. não consigo fazer, segue exemplo: case Frm_Escrituracao_Notas.AcBrNFe.NotasFiscais.Items[0].NFe.Ide.indPag of TpcnIndicadorPagamento(0) : Frm_Escrituracao_Notas.CDS_CADASTROIDE_INDPAG.AsString := '0'; // VISTA TpcnIndicadorPagamento(1) : Frm_Escrituracao_Notas.CDS_CADASTROIDE_INDPAG.AsString := '1'; // PRAZO TpcnIndicadorPagamento(2) : Frm_Escrituracao_Notas.CDS_CADASTROIDE_INDPAG.AsString := '2'; // OUTROS end; Não consigo compilar pq não acha os TpcnIndicadorPagamento dentro do case na tela secundária... Alguém pode me ajudar?