Ir para conteúdo

POWERED BY:

Arquivado

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

Gelado

[Resolvido] Consulta ASP - agrupando dados

Recommended Posts

Estou fazendo um consulta ASP - SQL, mas está ficando assim:

 

Cursos de informatica
Banco de dados

Cursos de informatica
Redes

Cursos de informatica
Web Design

só que eu preciso que fique assim:

 

Cursos de informatica
Banco de Dados
Redes
Web Design

ja tentei de quase tudo, revirei foruns e a internet mas não achei nada.. ja faz 2 dias e nada

por favor, me ajudem

 

vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

será que da pra usar o 'group by' ?

 

ssql = "select DISTINCT atipo, atitulo, aid, aimagem"
ssql = ssql & " FROM tbcursos"
ssql = ssql & " group by tbcursos.atipo"
ssql = ssql & " order by atipo"

tentei mas da erro:

"You tried to execute a query that does not include the specified expression 'atitulo' as part of an aggregate function."

 

tentei tambem:

ssql = "select DISTINCT atipo"

mas.. erro: Item cannot be found in the collection corresponding to the requested name or ordinal.

 

o que eu estou fazendo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta aqui o resultado deste select:

 

ssql = "select atipo, atitulo, aid, aimagem FROM tbcursos order by atipo"

O Distinct só funciona quando os registros duplicados tem valores iguais em todas as colunas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta aqui o resultado deste select:

 

ssql = "select atipo, atitulo, aid, aimagem FROM tbcursos order by atipo"

O Distinct só funciona quando os registros duplicados tem valores iguais em todas as colunas.

 

assim funciona, só que ele mostra:

 

Cursos de informatica

Banco de dados

 

Cursos de informatica

Redes

 

Cursos de informatica

Web Design

 

 

só que eu preciso que fique agrupado assim:

 

Cursos de informatica

Banco de Dados

Redes

Web Design

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara a solução mais facil, mesmo estanha é utilizar o UNION ALL e selecionar cada um dos 4 separados

 

 

(Select * From XXXXX Where Coluna ='Cursos de informatica')

UNION ALL

(Select * From XXXXX Where Coluna ='Banco de Dados')

UNION ALL

(Select * From XXXXX Where Coluna ='Redes')

UNION ALL

(Select * From XXXXX Where Coluna ='Web Design')

 

Não sei como esta modelado seu DB, mas adapte esta rotina SQL para sua necessidade que funcionara.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a ideia é boa, mas eu tenho 100 cursos cadastrados..

 

e se eu usar assim:

faço uma consulta para agrupar o 'tipo' e dentro dessa consulta faço outra consulta.. mas, como faço pra recuperar o que mostrou e/ou agrupou da primeira consulta para filtrar a segunda consulta para mostrar somente os cursos relacionados ao 'tipo' da primeira consulta. confuso ¬¬

 

estou tentando assim:

 

<%
ssql = "select atipo"
ssql = ssql & " FROM tbcursos"
ssql = ssql & " group by atipo"
ssql = ssql & " order by atipo"

set ss = server.createobject("adodb.recordset")
ss.open ssql,conexao,1,2

%>
<tr>
<td valign="top">
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0">
<%
While Not ss.EOF %>
<tr><td width="146" height="107" style="border-bottom-color:#000; border-bottom-style:solid; border-bottom-width:1px">
<a href="cursodec.asp?codigo=<%'= ss("aid")%>" class="not"><img src="img/cursos/<%'= ss("aimagem")%>" width="136" height="97" border="1" /></a></td>
<td width="693" align="left" valign="top" style="border-bottom-color: #000; border-bottom-style:solid; border-bottom-width:1px">
<font face="Arial, Helvetica, sans-serif" color=" #000" style="font-size:13pt">
 <strong><%= ss("atipo")%></strong></font><br><br>
<% set rs =server.createobject("adodb.recordset")
rs.open "select * from tbcursos where atipo like = '%ss('atipo')%' order by aid",conexao,1,2
do until rs.eof%>
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF" style="font-size:11pt">
<a href="cursodec.asp?codigo=<%= rs("aid")%>" class="not">
<%= rs("atitulo")%></a>
 <%
	rs.MoveNext
	Loop
	rs.Close
	Set rs = nothing
%>
</font><br><br /></td></tr>
<% ss.MoveNext
if not ss.eof then
%>
<tr><td width="146" height="107" style="border-bottom-color:#000; border-bottom-style:solid; border-bottom-width:1px">
<a href="cursodec.asp?codigo=<%'= ss("aid")%>" class="not"><img src="img/cursos/<%'= ss("aimagem")%>" width="136" height="97" border="1" /></a></td>
<td align="left" valign="top" style="border-bottom-color: #000; border-bottom-style:solid; border-bottom-width:1px">
<font face="Arial, Helvetica, sans-serif" color=" #000" style="font-size:13pt">
 <strong><%= ss("atipo")%></strong></font><br><br>
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF" style="font-size:11pt">

<% set rs =server.createobject("adodb.recordset")
rs.open "select * from tbcursos where atipo like '%= ss('atipo')%' order by aid",conexao,1,2
do until rs.eof%>

<font face="Arial, Helvetica, sans-serif" color="#FFFFFF" style="font-size:11pt">
<a href="cursodec.asp?codigo=<%= rs("aid")%>" class="not">
<%= rs("atitulo")%></a>
 <%
	rs.MoveNext
	Loop
	rs.Close
	Set rs = nothing
%>
</font><br><br /></td></tr>
<% ss.MoveNext
end if
Wend
%>
</table>
</td>
</tr>
<%
	ss.close
	set ss = nothing
%>

reparem que eu desetive os 'ss (aimagem)' e ss (aid) por causa do group by que da erro.

como vcs viram, estou todo errolado com isso e ja estou tres dias só tentando faze isso.. :angry:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi bem, queres

 

Listar os Cursos

- Listar algo relacionado aos cursos

 

?

 

Se for, podes criar uma coluna chamada "Ordem" e mandar ordenar por ela ( Order by Ordem ASC ) nesta coluna definis números ( começando de 1 ) que definira a ordem ao qual a listagem deve ser ordenada ( uso isto em listagem de departamenteos, com um dragdrop fica muito massa )

Compartilhar este post


Link para o post
Compartilhar em outros sites

problema resolvido!

 

depois de pesquisar bastante e com a ajuda de vcs cheguei ao seguinte codigo:

 

<table width="99%" border="0">
<%
ssql = "select atipo"
ssql = ssql & " FROM tbcursos"
ssql = ssql & " group by atipo"
ssql = ssql & " order by atipo"

set ss = server.createobject("adodb.recordset")
ss.open ssql,conexao,1,2

dim vartipo
vartipo			 = ss("atipo")

if not ss.eof then
ss.MoveFirst
ss.PageSize = varProdutosPorPagina
										
varTotalPaginas = ss.RecordCount'ss.PageCount
										
'Pagina Absoluta
ss.AbsolutePage = varPaginaAtual 
varColuna = 0	
varContador = 0
While Not ss.EOF And varContador < varProdutosPorPagina'ss.PageSize
%>
<tr>
<td valign="top">
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
  <td height="40" colspan="2"><font face="Arial, Helvetica, sans-serif" color=" #000" style="font-size:13pt">
 <strong><%= ss("atipo")%></strong></font></td>
  </tr>
<%
rsql = "select *"
rsql = rsql & " FROM tbcursos"
rsql = rsql & " where atipo like '%"&ss("atipo")&"%'"
rsql = rsql & " order by aid"

set rs =server.createobject("adodb.recordset")
rs.open rsql,conexao,1,2

dim varimagem
varimagem 	= rs ("aimagem")

%>
<tr><td width="16%" height="107" valign="top" style="border-bottom-color:#000; border-bottom-style:solid; border-bottom-width:1px">
<img src="img/cursos/<%= varimagem%>" width="136" height="97" border="1" />
</td>
  <td width="84%" valign="top" style="border-bottom-color:#000; border-bottom-style:solid; border-bottom-width:1px">
  
<%do until rs.eof%>
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF" style="font-size:11pt"><a href="cursodec.asp?codigo=<%= rs("aid")%>" class="not"><%= rs("atitulo")%></a></font><br>
<%
rs.MoveNext
Loop
rs.Close
Set rs = nothing
%>
<br>
</td>
</tr>
</table>
</td>
</tr>
  <%
	varContador = varContador + 1
	ss.movenext
	wend
	ss.close
	set ss = nothing
	
	end if
%>

</table>

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.