Em 28 de fevereiro de 2014 10:49, Douglas Fabiano Specht <
[email protected]> escreveu:

>
>
>
> Em 28 de fevereiro de 2014 09:53, Fabrízio de Royes Mello <
> [email protected]> escreveu:
>
> On 27-02-2014 18:12, Carlos Antônio Pereira (VidaUTI) wrote:
>>
>>> O que você poderia tentar é construir diferentes SELECTs com
>>>> diferentes RETURNs mas, neste caso, creio que você teria problemas nas
>>>> chamadas da função (quando você retorna um RECORD você precisa
>>>> especificar na chamada a lista de campos, com respectivos tipos, que
>>>> está(ão) sendo retornado(s)).
>>>>
>>>
>>>
>>> De acordo com a documentação, RECORD é um tipo de estrutura desconhecido
>>> (apenas endereçado).
>>> Isso para mim resolveria se a um determinado RECORD fosse possível
>>> adicionar outros RECORDS.
>>>
>>> Numa solução de junção, todas as tabelas participam do relacionamento,
>>> mesmo quando não dizem
>>> respeito ao contexto. Assim sendo, o retorno da tabela ligada será nulo
>>> em alguns casos, mas o
>>> trabalho do BD vai existir para que se determine a nulidade.
>>>
>>> Enfim, foi apresentada uma solução com matrizes que resolve o problema.
>>> Muito obrigado pela resposta,
>>>
>>>
>> Carlos,
>>
>> Estou chegando um pouco tarde a essa discussão, mas resumindo o que vc
>> precisa seria uma função com um retorno *variável*, ou seja, com diferentes
>> tipos de dados e valores??
>>
>> Att,
>>
>> --
>>    Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
>>    PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
> Bom dia Fabrizio,
> pelo que entendi, a função array_to_string resolveu.
> ele precisava juntar num unico campo varias informações que estavam em
> campos diferentes e varias linhas no banco de dados.
>
> exemplo:
> table notafiscal (nrdocfiscal, dspessoa, vlvalor
> 333   pessoa X     90,00
>
> detnotafiscal(cddetnotafiscal, nrdocfiscal, dsproduto)
> 1   333   coca-cola    30,00
> 2   333   cerveja        30,00
> 3   333   agua min.    30,00
>
>
> ele queria o seguinte num select juntar todos os itens por exemplo:
>
> select dspessoa, nrdocfiscal, vltotal
> (SELECT array_to_string(
>   array(Select distinct (dsproduto) From docfiscalitem  WHERE
> cddocfiscal=11), ';'))
>   from docfiscal where cddocfiscal=11
>
>
> "CONSUMIDOR"; 333; 90,00; "coca-cola;cerveja;agua min."
>

>
> --
>
> Douglas Fabiano Spech
>
>
>
o resultado seria:

"pessoa X"; 333; 90,00; "coca-cola;cerveja;agua min."

e não

"CONSUMIDOR"; 333; 90,00; "coca-cola;cerveja;agua min."


-- 

Douglas Fabiano Specht
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a