Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leandroauler

Agrupar resultados

Recommended Posts

Olá galera,

 

Tenho uma tabela colunas onde tenho os seguintes campos:

 

id colunista data hora titulo texto foto

 

 

 

 

Gostario de fazer um select que tivesse o seguinte resultado

 

 

Foto

 

colunista

 

data - hora - titulo

 

 

Sendo que ele colocasse todas os registros para o colunista sem repetição da foto e o nome do culunista

 

Já fiz selects com DISTINCT, GROUP BY e nada funcionou..

 

O mais próximo que cheguei foi:

 

SELECT DISTINCT(COLUNISTA), id, data, hora, titulo, texto, foto FROM colunas

 

desse modo o resultado era:

 

Foto

 

colunista

 

data - hora - titulo => uma linha para cada resgitro de cada colunista, repetindo foto, nome colunista, data, hora e titulo

 

SELECT DISTINCT(COLUNISTA), id, data, hora, titulo, texto, foto FROM colunas GROUP BY colunista

 

desse modo o resultado era:

 

Foto

 

colunista

 

data - hora - titulo => Aparece apenas um resgitro para cada colunista.

 

Alguém tem como me ajudar?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que voce pede eh algo no minimo estranho ja que você quer empilhar dados totalmente diferentes numa mesma consulta, impossivel nao eh, eh soh mto estranho

 

Select cola,colb,colc from (

select distinct foto as cola , null, null , colunista as colunista , 1 as ordenador from colunas

UNION ALL

select distinct colunista as cola , null, null , colunista as colunista ,2 as ordenador from colunas

UNION ALL

select data as cola , hora as colb , titulo as colc , colunista as colunista , 3 as ordenador

) as bacalhau

order by colunista ASC , ordernador ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que voce pede eh algo no minimo estranho ja que você quer empilhar dados totalmente diferentes numa mesma consulta, impossivel nao eh, eh soh mto estranho

 

Select cola,colb,colc from (

select distinct foto as cola , null, null , colunista as colunista , 1 as ordenador from colunas

UNION ALL

select distinct colunista as cola , null, null , colunista as colunista ,2 as ordenador from colunas

UNION ALL

select data as cola , hora as colb , titulo as colc , colunista as colunista , 3 as ordenador

) as bacalhau

order by colunista ASC , ordernador ASC

 

Giesta,

 

Primeiramente obrigado pela ajuda.

 

Vou explicar o porque disso:

 

Teria um jeito mais fácil de fazer, mas seriam feitas várias queries pois o site tem 8 colunistas e se entrasse mais colunistas seriam feitas novas queries...

 

Select * from colunas WHERE colunista ='fulano de tal'.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria diferente: você varre a base uma vez , depois arruma os dados via programçao

 

pq desse jeito q eu fiz tem q varrer a base 3 vezes

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria diferente: você varre a base uma vez , depois arruma os dados via programçao

 

pq desse jeito q eu fiz tem q varrer a base 3 vezes

 

Via programacão... qual idéia.... já tentei tabém mas monstra apenas

 

um dado de cada colunitsa ex:

 

foto

 

nome

 

data - hora - titulo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que você está fazendo consulta numa unica tabela e há dados nela que são desnecessários

 

você tem que fazer um relacionamento entre as dua tabelas usando subqueries e join. Acho que no seu caso RIGHT JOIN

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.