Ir para conteúdo

POWERED BY:

Arquivado

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

kania

[Resolvido] Como agrupar colunas iguais do BD

Recommended Posts

Olá pessoal alguém sabe me infomrar qual a melhor forma de fazer em SELECT de forma a não retornar valores duplicados da coluna.

 

Exemplo tenho uma tabela de fotos, e nela o usuário pode criar um nome de album para as fotos, gostaria de que na impressão da pagina fosse mostrada somente os nomes dos albuns, ams sem duplicar, neste momento esta duplicando, ou seja esta com um SELETC normal vejam:

 

Set RS = Server.CreateObject("adodb.recordset")
SQL = "select * from galeria order by data" 
RS.Open SQL,Conn,3,3

tentei utilizar o GROUP BY da seguinte forma:

 

Set RS = Server.CreateObject("adodb.recordset")
SQL = "select * from galeria GROUP BY album order by data" 
RS.Open SQL,Conn,3,3

Mas esta dando erro, estou usando ao comando de forma errad, ou não seria este o comando correto para este tipo de trabalho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu não estou mostrando as imagens na primeira pagina, somente o nome dos albuns, tipo:

 

Album 1

Album 2

Album 3

Album 4

 

Todos com links equando a pessoa clica neste link leva a pagina que tem as fotos refernte a este album.

O problema é que est sendo listado assim:

 

Album 1

Album 1

Album 1

Album 2

Album 1

Album 3

Album 3

Album 4

Album 1

Album 2

Album 3

Album 4

 

Ou seja, est repedinto os albuns, eu quero agrupar estes albuns de forma otimizar o espaço e também bão ficar aparecendo o que não é preciso. Se é que tem como. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

não pq neste caso estou repassando a informação via request.QueryString

 

album=request.QueryString("idAlbum")

então fica mais imples, como ele esta fazendo uma referencia conforme o valor que eu repassei não esta se aperdendo, só traz a fotos que tenham no campo album as mesmas infomrações, já no caso da pagina que mostra a galeria acredito que preciso determinar esta informação dentro do Select para que e verifique quais informações da coluna album são iguais e se for iguais só imprimir na tela uma vez o link contendo o nome do album a data da criação e quem criou o album, você pode ver em funcionamento no link http://www.acaoesucesso.com.br/album.asp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessola vasculhei o forum, e internet para ver se conseguia uma luz e não achei, vou colocar aqui como esta a formação do meu BD para ver ajuda:

 

Tabela: galeria

 

Campos:

Campo ID: chave primaria

 

------------------------------------------------------------------------------------------------
ID	  TITULO		  DATA			ALBUM		INSERIDO		  FOTO		  MINI
------------------------------------------------------------------------------------------------
1	   Foto 1		 22/03/2008	   Praia		 kania			1.jpg		 mini1.jpg
2	   Foto 2		 22/03/2008	   Praia		 kania			2.jpg		 mini2.jpg
3	   Foto 3		 22/03/2008	   Praia		 kania			3.jpg		 mini3.jpg
4	   Foto 4		 22/03/2008	   Praia		 kania			4.jpg		 mini4.jpg
5	   Foto 1		 21/03/2008	   Ferias		kania			5.jpg		 mini5.jpg
6	   Foto 6		 22/03/2008	   Praia		 kania			6.jpg		 mini6.jpg
7	   Foto 2		 21/03/2008	   Ferias		kania			7.jpg		 mini7.jpg
8	   Foto 8		 22/03/2008	   Praia		 kania			8.jpg		 mini8.jpg
9	   Foto 9		 22/03/2008	   Praia		 kania			9.jpg		 mini9.jpg
--------------------------------------------------------------------------------------------------

Bom esta seria uma cópia da tabela montada, eu gostaria que na pagina album.asp fossem listados todos os albuns cadastrados dentro do BD, qque neste caso seria Praia e Férias, e na pagina lista_fotos.asp quando clicado sobre o album ele retornace as fotos referentes a estes album, lembrando que a apgina lista_fotos.asp esta funcionando normalmente, o porblema esta memso na pagina album.asp que ao inves de trazer desta forma:

 

> Férias - Criado em: 21/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

 

Esta trazendo desta forma:

 

> Férias - Criado em: 21/03/2008 pelo usuário kania

> Férias - Criado em: 21/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

> Praia - Criadoo em: 22/03/2008 pelo usuário kania

 

Ou seja esta dulicando a mesma informação e quando o visitante clica no link ele mostra as mesmas fotos (claro porque esta no memso album).

E é isto que eu estou tentnado corrigir.

Ja tentei GROUP BY da seguinte forma:

 

SQL = "select album,data,inserido from galeria group by album order by data"

desta forma retorna o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'data' as part of an aggregate function.

/album.asp, line 60

Também tentei assim:

 

SQL = "select album,data,inserido from galeria group by album, order by data"

desta forma retorna o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in GROUP BY clause.

/album.asp, line 60

Tente também assim:

 

SQL = "select * from galeria group by album, order by data"

desta forma retorna o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in GROUP BY clause.

/album.asp, line 60

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retornou o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'max(data) data'.

/album.asp, line 61

na verdade não entendi sua sinteze, poderia me explicar a titulo de aprendizado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me esqueci do As:

SQL = "select distinct album,inserido,max(data) as data from galeria group by album, inserido"

na verdade não entendi sua sinteze, poderia me explicar a titulo de aprendizado?

O distinct selecionará apenas um album e um inserido, caso haja repetições, e o max(), traz o máximo do campo entre parentese, no caso a data, o resultado desta query deverá ser o álbum, quem criou e a maxima data, porém analisando a tabela que você postou mais acima, somente o distinct resolveria:

SQL = "select distinct album,inserido,data from galeria"

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.