Ir para conteúdo
Fórum Script Brasil

ljsantos

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre ljsantos

ljsantos's Achievements

0

Reputação

  1. Boa tarde Ronivaldo !! Muito obrigado por me atentar a esse detalhe. Nossa passei despercebido. Valeu !!!
  2. Olá boa dia a todos, Estou com um problema num retorno de uma fuction no postgres. É uma query dinamica com variáveis de entrada status, vendedor, datas. Quando executo a function ele me retorna o resultado no formato JSON e não em colunas como eu desejo. Os filtros estão corretos, quando filtro pelas variáveis me retorna o resultado esperado, porém em formato JSON. Já revisei toda essa function e não estou encontrando o erro ou solução para que ela me retorne em colunas no formato de tabela. Se alguém me puder me ajudar , desde já agradeço muito. Segue a function: --DROP FUNCTION relacional.lista_pedido_site_status_data(varchar,varchar,date,date); --SELECT relacional.lista_pedido_site_status_data('Gold', NULL,NULL,NULL); CREATE OR REPLACE FUNCTION relacional.lista_pedido_site_status_data(v_status varchar, v_vendedor varchar, v_data_venda_ini date, v_data_venda_fim date) RETURNS TABLE(cliente character varying, status character varying, vendedor character varying, produto character varying, data_venda text, total numeric) LANGUAGE plpgsql AS $function$ declare v_initial_date text; declare v_nvendedor text; declare v_nstatus text; BEGIN /*********************************************/ IF v_data_venda_ini is NOT NULL AND v_data_venda_fim is NOT NULL THEN select v_data_venda_ini into v_data_venda_ini; select v_data_venda_fim into v_data_venda_fim; select ' and v.data between ''' || v_data_venda_ini || ''' and ''' || v_data_venda_fim ||''' ' into v_initial_date; ELSEIF v_data_venda_ini is NOT NULL AND v_data_venda_fim is NULL THEN select v_data_venda_ini into v_data_venda_ini; select ' and v.data = ''' || v_data_venda_ini || ''' ' into v_initial_date; ELSE v_initial_date = ''; END IF; /*********************************************/ IF v_vendedor is NOT NULL THEN select ' and vd.nome = ''' || v_vendedor || ''' ' into v_nvendedor; ELSE v_nvendedor = ''; END IF; /*********************************************/ IF v_status is NOT NULL THEN select ' and c.status = ''' || v_status || ''' ' into v_nstatus; ELSE v_nstatus = ''; END IF; /*********************************************/ RETURN QUERY EXECUTE ' SELECT DISTINCT c.cliente, c.status, vd.nome as vendedor, p.produto, to_char(v.data, ''DD/MM/YYYY'') as data_venda, v.total FROM relacional.vendas v inner join relacional.itensvenda it on it.idvenda = v.idvenda inner join relacional.produtos p on p.idproduto = it.idproduto inner join relacional.clientes c on c.idcliente = v.idcliente inner join relacional.vendedores vd on vd.idvendedor = v.idvendedor WHERE 1=1 ' || v_initial_date || v_nvendedor || v_nstatus || ' limit 30 '; END; $function$ ; O resultado que me retorna é esse:
×
×
  • Criar Novo...