Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-25 Por tôpico lu moraes santos
Legal , vou fazer este teste.

Grato amigo

[image: Foto]
*LuMoraes*
*O mais completo para seu comércio.*

Em 25 de fevereiro de 2016 18:08, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
> 2016-02-25 16:33 GMT-03:00 lu moraes santos :
>
>> entao o PG nao aceita vc mudar a estrutura no select de retorno que seja
>> diferente da estrutura declarada na PL.
>
>
> Não aceita. E?
>
> Minha dica é usar NULL nas colunas que não te interessam para cada caso.
>
> At.
> --
> Matheus de Oliveira
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-25 Por tôpico Matheus de Oliveira
2016-02-25 16:33 GMT-03:00 lu moraes santos :

> entao o PG nao aceita vc mudar a estrutura no select de retorno que seja
> diferente da estrutura declarada na PL.


Não aceita. E?

Minha dica é usar NULL nas colunas que não te interessam para cada caso.

At.
-- 
Matheus de Oliveira
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-25 Por tôpico lu moraes santos
Ola Matheus, boa tarde,
Antes de qquer coisa quero agradecer tua atencao.

Entao eu vou colocar aqui a estrutura da minha pl pra vc entender melhor:

CREATE OR REPLACE FUNCTION public.lucratividade_detalhada (Pd1 Date, Pd2
Date)
RETURNS TABLE (
  ID_OS integer,
  DATA DATE,
  ID_CLIENTE integer,
  NOME VARCHAR(100),
  ID_PRODUTO INTEGER,
  CODFOR VARCHAR(100),
  CODBAR VARCHAR(100),
  DESCRICAO VARCHAR(100),
  UNIDADE VARCHAR(2),
  QTDE NUMERIC(10,3),
  CUSTO NUMERIC(10,2),
  DESCONTO NUMERIC(10,2),
  UNITARIO NUMERIC(10,2),
  TOTAL_LIQUIDO NUMERIC(10,2),
  TOTAL_BRUTO NUMERIC(10,2),
  TOTAL_CUSTO NUMERIC(10,2),
  LUCRO NUMERIC(10,2),
  MARCKUP NUMERIC(10,2),
  ML NUMERIC(10,2),
  TIPO CHAR(10)
) AS
$body$
DECLARE


veja que em return TABLE eu defino a estrutura que desejo retornar. entao
se eu retornar qquer coisa que seja diferente desta estrutura da pau.

Vou colocar aqui teu exemplo:

IF (p_resumido) THEN
RETURN QUERY SELECT foo, bar, null, null FROM ...
ELSE
   RETURN QUERY SELECT foo, bar, baz, zaz FROM ...
END IF;


entao o PG nao aceita vc mudar a estrutura no select de retorno que seja
diferente da estrutura declarada na PL.

Entendeu???



[image: Foto]
*LuMoraes*
*O mais completo para seu comércio.*

Em 25 de fevereiro de 2016 14:51, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
> 2016-02-24 15:33 GMT-03:00 lu moraes santos :
>
>> pelo que estou vendo no seu codigo, voce preenche os campos que nao serao
>> retornados com null para atender a estrutura que foi definida no return
>> table???
>>
>>
> Correto.
>
> Se sim como ficaria no caso de fazer um agrupamento??/
>>
>
> Da mesma forma, não entendi a dúvida.
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-25 Por tôpico Matheus de Oliveira
2016-02-24 15:33 GMT-03:00 lu moraes santos :

> pelo que estou vendo no seu codigo, voce preenche os campos que nao serao
> retornados com null para atender a estrutura que foi definida no return
> table???
>
>
Correto.

Se sim como ficaria no caso de fazer um agrupamento??/
>

Da mesma forma, não entendi a dúvida.

Atenciosamente,
-- 
Matheus de Oliveira
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-24 Por tôpico lu moraes santos
Ola boa tarde Matheus, seria isto sim

IF (p_resumido) THEN
RETURN QUERY SELECT foo, bar, null, null FROM ...
ELSE
   RETURN QUERY SELECT foo, bar, baz, zaz FROM ...
END IF;

pelo que estou vendo no seu codigo, voce preenche os campos que nao serao
retornados com null para atender a estrutura que foi definida no return
table???

Se sim como ficaria no caso de fazer um agrupamento??/

GRATO


[image: Foto]
*LuMoraes*
*O mais completo para seu comércio.*

Em 22 de fevereiro de 2016 10:40, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
> 2016-02-22 7:17 GMT-03:00 lu moraes santos :
>
>> Então eu não queria especificar quais campos no return. Pq vou criar uma
>> função que vai receber um parametro Resumido ou Detalhado. Se Resumido vai
>> retornar tais campos, se detalhado retorna tais campos, por isto que falei
>> de retornar os campos dinamicamente. Grato
>
>
> Seria o seguinte?
>
> IF (p_resumido) THEN
> RETURN QUERY SELECT foo, bar, null, null FROM ...
> ELSE
> RETURN QUERY SELECT foo, bar, baz, zaz FROM ...
> END IF;
>
> Se quiser mais dinâmico:
>
> v_query := $$SELECT foo, bar, baz, zaz FROM ... $$;
> IF (p_resumido) THEN
> RETURN QUERY EXECUTE 'SELECT foo, bar, null, null FROM
> ('||v_query||') t';
> ELSE
> RETURN QUERY EXECUTE v_query;
> END IF;
>
> Era isso que queria?
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-22 Por tôpico Matheus de Oliveira
2016-02-22 7:17 GMT-03:00 lu moraes santos :

> Então eu não queria especificar quais campos no return. Pq vou criar uma
> função que vai receber um parametro Resumido ou Detalhado. Se Resumido vai
> retornar tais campos, se detalhado retorna tais campos, por isto que falei
> de retornar os campos dinamicamente. Grato


Seria o seguinte?

IF (p_resumido) THEN
RETURN QUERY SELECT foo, bar, null, null FROM ...
ELSE
RETURN QUERY SELECT foo, bar, baz, zaz FROM ...
END IF;

Se quiser mais dinâmico:

v_query := $$SELECT foo, bar, baz, zaz FROM ... $$;
IF (p_resumido) THEN
RETURN QUERY EXECUTE 'SELECT foo, bar, null, null FROM
('||v_query||') t';
ELSE
RETURN QUERY EXECUTE v_query;
END IF;

Era isso que queria?

Atenciosamente,
-- 
Matheus de Oliveira
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-22 Por tôpico lu moraes santos
Ola bom dia Matheus.
Então eu não queria especificar quais campos no return. Pq vou criar uma
função que vai receber um parametro Resumido ou Detalhado. Se Resumido vai
retornar tais campos, se detalhado retorna tais campos, por isto que falei
de retornar os campos dinamicamente. Grato
Em 22 de fev de 2016 3:39 AM, "Matheus de Oliveira" <
matioli.math...@gmail.com> escreveu:

>
> 2016-02-19 17:10 GMT-02:00 lu moraes santos :
>
>> return query
>> SELECT * from tmplucratividade;
>>
>> Neste ex. a tabela  tmplucratividade tem exatamente a mesma estrutura da
>> TABLE.
>>
>> Porem queria saber se existe uma maneira de eu retornar uma QUERY
>> DINAMICAMENTE
>>
>> exemplo:
>>
>> RETURN QUERY Select Nome, Endereco From CLIENTE Order by Nome;
>>
>
> Não sei se entendi, o que é "dinâmico" nessa query? Quer retornar apenas
> algumas colunas? Se quiser, basta definir somente estas no RETURNS TABLE.
>
> At.
> --
> Matheus de Oliveira
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-21 Por tôpico Matheus de Oliveira
2016-02-19 17:10 GMT-02:00 lu moraes santos :

> return query
> SELECT * from tmplucratividade;
>
> Neste ex. a tabela  tmplucratividade tem exatamente a mesma estrutura da
> TABLE.
>
> Porem queria saber se existe uma maneira de eu retornar uma QUERY
> DINAMICAMENTE
>
> exemplo:
>
> RETURN QUERY Select Nome, Endereco From CLIENTE Order by Nome;
>

Não sei se entendi, o que é "dinâmico" nessa query? Quer retornar apenas
algumas colunas? Se quiser, basta definir somente estas no RETURNS TABLE.

At.
-- 
Matheus de Oliveira
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] RESULT TABLE DINAMICAMENTE

2016-02-19 Por tôpico lu moraes santos
Ola boa tarde a todos.

Eu venho criando algumas pls pra resultar uma TABLE, na definicao da funcao
ja se determina a estrutura da table que vai resultar.

exemplo:


CREATE OR REPLACE FUNCTION public.lucratividade_detalhada (Pd1 Date, Pd2
Date)
RETURNS TABLE (
  ID_OS integer,
  DATA DATE,
  ID_CLIENTE integer,
  NOME VARCHAR(100),
  ID_PRODUTO INTEGER,
  CODFOR VARCHAR(100),
  CODBAR VARCHAR(100),
  DESCRICAO VARCHAR(100),
  UNIDADE VARCHAR(2),
  QTDE NUMERIC(10,3),
  CUSTO NUMERIC(10,2),
  DESCONTO NUMERIC(10,2),
  UNITARIO NUMERIC(10,2),
  TOTAL_LIQUIDO NUMERIC(10,2),
  TOTAL_BRUTO NUMERIC(10,2),
  TOTAL_CUSTO NUMERIC(10,2),
  LUCRO NUMERIC(10,2),
  MARCKUP NUMERIC(10,2),
  ML NUMERIC(10,2)
) AS
$body$ ()


AI NO RETURN DEVO CRIA-LO PRA RETORNAR EXATAMENTE A ESTRUTURA QUE ESTA
DETALHADO NA TABLE:

return query
SELECT * from tmplucratividade;

Neste ex. a tabela  tmplucratividade tem exatamente a mesma estrutura da
TABLE.

Porem queria saber se existe uma maneira de eu retornar uma QUERY
DINAMICAMENTE

exemplo:

RETURN QUERY Select Nome, Endereco From CLIENTE Order by Nome;

GRATO.
LUCIANO





[image: Foto]
*LuMoraes*
*O mais completo para seu comércio.*
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral