-
Total de itens
20 -
Registro em
-
Última visita
Posts postados por Helio Cássio
-
-
Bom Dia
Gostaria de saber se tem como na função baixar converter o valor ate 999 bilhões, pois atualmente ele so converte ate 999 milhões
CREATE OR REPLACE FUNCTION valor_extenso_f_teste(numeric)RETURNS text AS$BODY$DECLAREmoeda_sing text;moeda_plu text;milhao text;milhar text;unidade text;centavo text;compl_milhao text;compl_milhar text;compl_unidade text;resultado text;valor text;BEGINIF $1 = 0 THENreturn '';END IF;--moeda corrente no singular e plural.moeda_sing := ' REAL';moeda_plu := ' REAIS';--formata o valor de acordo com a máscara 999999999.99valor := replace(substr(to_char($1, '999999999D00'), 2), ' ', '0');--usa a função valor_extenso_aux_f para obter quantos milhões.milhao := valor_extenso_aux_f(substr(valor,1,3));IF (substr(valor,1,3)::integer > 1) THENmilhao := milhao || ' MILHOES';ELSEIF (substr(valor,1,3)::integer = 1) THENmilhao := milhao || ' MILHAO';END IF;END IF;--usa a função valor_extenso_aux_f para obter quantos mil.milhar := valor_extenso_aux_f(substr(valor,4,3));IF (substr(valor,4,3)::int > 0) THENIF substr(valor,4,3)::int = 1 THENmilhar := ' MIL';ELSEmilhar := milhar || ' MIL';END IF;END IF;--usa a função valor_extenso_aux_f para obter quantas unidades.unidade := valor_extenso_aux_f(substr(valor,7,3));IF (substr(valor,1,9)::integer = 1) THENunidade := unidade || moeda_sing;ELSEunidade := unidade || moeda_plu;END IF;--usa a função valor_extenso_aux_f para obter quantos centavoscentavo := valor_extenso_aux_f('0' || substr(valor,11,2));IF (substr(valor,11,2)::integer > 1) THENcentavo := centavo || ' CENTAVOS';ELSEIF (substr(valor,11,2)::integer = 1) THENcentavo := centavo || ' CENTAVO';END IF;END IF;--verifica a necessidade de ',' após o milhão.IF length(trim(milhao))::integer <> 0 THENcompl_milhao := ' E ';ELSEcompl_milhao := '';END IF;--verifica a necessidade de , após o mil.IF length(ltrim(substr(valor,6,4),'0'))::int < 4 or length(trim(substr(valor,6,4),'0'))::int = 1 THENcompl_milhar := ' ';ELSEcompl_milhar := ' E ';END IF;--verifica a necessidade de , após as unidades.IF length(trim(unidade))::integer <> 0 and length(trim(centavo))::integer <> 0 THENcompl_unidade := ' E ';ELSEcompl_unidade := '';END IF;resultado:= milhao || compl_milhao || milhar || compl_milhar ||unidade || compl_unidade || centavo;return replace(resultado,' ',' ');END;$BODY$ -
Obrigado pela dica.
Resolvido
-
Boa tarde
gostaria de saber tem como na conexão via putty no ubuntu caso o usuário erre a senha ao tenta fazer login no servidor ele feche o putty não dando a opção de tenta varias vezes seguidas.
-
gostaria de converte essa explicação para sql
se data 1 tiver valor > 0 data 2 e 3 não soma, se data 1 tiver valor = 0 soma data 2 data 3 não soma , se data 1 for =0 e data 2= 0 soma data 3
-
quero o seguinte
exe:
data 1 tem informação então o select so pega a informação da data 1 e deconsidera a data 2 e 3
data 1 não tem informação mais a data 2 e 3 tem ele so considere a data 2 e não soma a data 3
entendeu?
-
Bom Dia
exe:
Select
sum(valor)
from
venda
where
(data=$data:date+1 or data=$data::date+2 or data=data$::date+3);
Estou criando um relatorio e são varias empresa, se eu coloca isso na empresa que tem na data 1 , data 2 e data 3 ele vai soma as 3 data mais na empresa que so consta uma das datas ele so puxa uma, queria que quando ele encontra informação na primeira data ele não busque a segunda e assim por diante
Tem como?
-
Bom Dia
Senhores, gostaria de saber se tem como saber qual ip executou um comando (delete/update/drop/create) no postgresql via terminal ou pgadminIII
-
obrigado pela dica.
-
Conseguir resolver obrigado
select
(case when nf.obs like '%Y%' then 'CAMINHAO VOLKS Y 16.000 LTS' when nf.obs like '%X%' then 'CAMINHAO VOLSK X 17 LTS else p.nome end),
pr.nome as produtofromestoque e join produto pr on (pr.grid=e.produto)joinpessoa p on (e.pessoa=p.grid);situação resolvida -
Bom Dia
Estou com a seguinte situação, preciso de um comando que tenha o seguinte:
tentei esse mais não deu certo
select
(case when nf.obs like '%Y%' then 'CAMINHAO VOLKS Y 16.000 LTS' else p.nome end),
(case when nf.obs like '%X%' then 'CAMINHAO VOLSK X 17 LTS' else p.nome end),pr.nome as produtofromestoque e join produto pr on (pr.grid=e.produto)joinpessoa p on (e.pessoa=p.grid);ele so esta considerando o segundo case.preciso que quando a obs conta Y ele traga CAMINHAO VOLKS Y 16.000 LTS e quando conter X ele traga CAMINHAO VOLSK X 17 LTS'Helio Cássio -
Boa tarde
Senhores, gostaria de saber se tem como deixa o arquivo como somente leitura e ao mesmo tempo coloca uma senha nele no qual o usuario consegue ver e ler o arquivo mais não consegui fazer nenhuma alteração nele há não ser que o mesmo tenha a senha.
-
conseguir soluciona
set valor=trunc(valor::numeric,2);
obrigado
Resolvido
-
senhores gostaria de saber como da o update abaixo:
valor |--------+50.99999 |autosystem=# update venda set valor=(trunc((valor)),2) where documento=9634;ERRO: coluna "valor" é do tipo double precision mas expressão é do tipo recordLINHA 1: update venda set valor=(trunc((valor)),2) where documento=9634;gostaria do valor assim 50.99attHelio Cássio -
Situação solucionada, obrigado pelo ajuda
-
Boa tarde
senhores sou novo aqui, como coloco o tópico como solucionado?
-
Bom Dia
senhores, gostaria de saber um comando para fazer o calculo abaixo.
7% do campo valor
att
Helio cassio
-
Deu certo, muito obrigado
-
estou testando, como faço pra identar?
-
boa tarde
senhores, estou com a seguinte situação preciso calcular media do preço unitario mais o valor so sai correto se eu colocar o group by mais preciso dos 2 valores em um comando so atualmente so consigo separado
select (avg(case when operacao='V' then l.preco_unit else NULL end) - avg(case when operacao='E'then l.preco_unit else NULL end) ) as lucro_preco,((avg(case when operacao='V' then l.preco_unit else NULL end) - avg(custo_medio_empresa_f(l.empresa,l.produto,($data_ini::date -1))))*sum(case when operacao='V' then l.quantidade else null end) ) from lancto l join produto p on (p.grid=l.produto) join pessoa e on (e.grid=l.empresa) where tipo='='C" group p.nome;
select (avg(case when operacao='V' then l.preco_unit else NULL end) - avg(case when operacao='E'then l.preco_unit else NULL end) ) as lucro_preco,((avg(case when operacao='V' then l.preco_unit else NULL end) - avg(custo_medio_empresa_f(l.empresa,l.produto,($data_ini::date -1))))*sum(case when operacao='V' then l.quantidade else null end) ) from lancto l join produto p on (p.grid=l.produto) join pessoa e on (e.grid=l.empresa) where tipo='='C" group by p.grupo;
se eu não colocar o group by o valor sair incorreto pois ele pega de todos produtos e preciso desse 2 resultado em um comando so não sei se criando uma tabela temp poderia ajuda nesse sentindo pois nunca utilizei esse ferramenta.
Não sei se expliquei bem.
Aviso Backup postgresql
em PostgreSQL
Postado
Bom dia
tem como no scrip abaixo de backup ele envia um e-mail informando quando o backup apresentar algum erro ou não fizer completo?
arquivo.bat