Pular para o conteúdo

Junção de campos da mesma coluna, porém, de registros diferentes (É possível ??)

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Junção de campos da mesma coluna, porém, de registros diferentes (É possível ??)

Enviado em 17/08/2015 - 14:13h


Olá a todos,

Há muito, venho tentando descobrir uma forma de consulta que me permita inserir registros de uma mesma coluna e tabela em um único campo. Para facilitar o entendimento vou exemplificar:

Vamos supor que eu tenha um banco de dados de que trate ocorrências de assalto, ex de algumas colunas que poderiam existir:

id_processo, numero_processo, data_ocorrencia, hora_ocorrencia, vitimas

O último campo (vitimas) pode trazer tanto 1 vítima envolvida, quanto 2, 3, e quantas mais forem necessárias. Tendo em vista que temos apenas 1 campo (vitimas), quando inseridos, na mesma tabela, 2 vítimas para a mesma ocorrência serão gerados 2 registros contendo o mesmo numero_processo, data_ocorrência e hora_ocorrência.

O que preciso é: através de um SELECT * from processos trazer as 2 vítimas em um único campo, exemplo:

id_processso numero_processo, data_ocorrencia, hora_ocorrencia, vitimas
1 155 15/07/2015 10:30 João
2 155 15/07/2015 10:30 Maria

O que desejo:
numero_processo, data_ocorrencia, hora_ocorrencia, vitimas
155 15/07/2015 10:30 João - Maria

Não sei se pude me fazer claro. Se puderem ajudar, ficarei eternamente grato.

Pensei em utilizar recursividade (with recursive ) mas não consegui desenrolar.

Grato,
Estevam

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Junção de campos da mesma coluna, porém, de registros diferentes (É possível ??)

Enviado em 17/08/2015 - 22:40h

Faria um loop em shell script:


psql ..... -c "SELECT numero_processo, data_ocorrencia, hora_ocorrenciaFROM tabela GROUP BY numero_processo, data_ocorrencia, hora_ocorrencia" |
while read LINHA
do
# para cada linha fazer nova consulta para coletar os nomes das vitimas
PROCESSO=$(echo $LINHA | cut -d'|' -f1);DATA=$(echo $LINHA | cut -d'|' -f2);HORA=$(echo $LINHA | cut -d'|' -f3)
VITIMAS=$(psql ... -c "SELECT vitimas FROM tabela WHERE numero_processo = $PROCESSO AND data_ocorrencia = '$DATA' AND hora_ocorrencia = '$HORA'" | xargs )
# agora basta fazer o sql para INSERIR os dados na tabela destino
psql ... -c "INSERT INTO tabela_destino($PROCESSO, '$DATA', '$HORA', '$VITIMAS');"
done


Agora pela modelagem, talvez o ideal fosse uma tabela de vinculação entre cpf da vitima e ocorrência:
id_ocorrencia,cpf_vitima
.

3. Re: Junção de campos da mesma coluna, porém, de registros diferentes (É possível ??)

Enviado em 18/08/2015 - 09:14h

Agradeço o pronto atendimento,

Sou leigo quanto ao psql, mas diante das novas possibilidades de extrapolar os limites do sql, vou procurar me inteirar.

Grato,
Estevam


Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder