Re: [pgbr-geral] RESULT TABLE DINAMICAMENTE
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 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
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-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
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 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
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-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
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