Ir para conteúdo

POWERED BY:

Arquivado

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

Inside

Grupos

Recommended Posts

Saudações galera.Gostaria de uma ajuda.Estou tentando agrupar categorias e subcategorias mais não estou conseguindo. Algúem pode ajudar?É o seguinte preciso agrupar ou mesclar tabelas diferentes.Exite uma tabela chamada "grupos" que o conteúdo é o seguinte:Chinelos de DedoChinelos de InfantisChinelos de PlásticoSemi FechadosHá outra tabela chamada "categorias" com o conteúdo:Fechado AltoFechado BaixoInfantilPalha AltoPalha BaixoPlástico AltoPlástico BaixoOcorre que eu preciso mostrar estes dados mesclados e separados por grupo, ex:Chinelos de Dedo (Grupo)Palha Alto (Categoria)Palha Baixo (Categoria)Chinelos de InfantisInfantilChinelos de PlásticoPlástico AltoPlástico BaixoSemi FechadosFechado AltoFechado BaixoSacaram?Obs.: Já especifiquei em cada registro da tabela "categorias" a qual grupo ele pertence, que correponde ao id do registro da tabela "grupos".Alguém sabe como resolver isto?Agradeço a atenção recebida.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar inner join pra selecionar juntos os dados da tabela pai e da filha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

um exemploTABELA1 (CAMPO1, CAMPO2 )TABELA2 (CAMPO3,CAMPO4,CAMPO5)CAMPO5 na tabela 2 é chave estrageira do CAMPO1 da tabela 1o select seriaSELECT CAMPO1,CAMPO2,CAMPO3,CAMPO4 FROM TABELA1 INNER JOIN TABELA2 ON TABELA1.CAMPO1 = TABELA2.CAMPO5tenta adaptar ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai marioufpa.Valeu, agora parece que entendi como funciona o" inner join". Sua explicação está ótima.Agora a problema é listar os registros, como faço?Tipo assim:do while not rsc.eofresponse.write rsc("categoria")rsc.movenextloop

Compartilhar este post


Link para o post
Compartilhar em outros sites

issovocê seleciona e depois lista igual como nos outros recordesets...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai, obrigado de novo. Acho que deu certo mas agora como faço para exibir o nome do grupo entre as categorias?Tipo assim:Chinelos de Dedo (Grupo)Palha Alto (Categoria)Palha Baixo (Categoria)Chinelos de Plástico (Grupo)Plástico Alto (Categoria)Plástico Baixo (Categoria)Ai vai o código:SQLc = "SELECT codigo_categoria,nome_categoria from Categorias INNER JOIN Grupos ON Categorias.grupo = Grupos.codigo_grupo"set rsc = conn_c.execute(sqlc)if rsc.eof and rsc.bof then response.write ""elseresponse.write "<br><table border=""0"" cellpadding=""0"" cellspacing=""0"">"do while not rsc.eofresponse.write "<tr><td height=""17"" class=""bmc""><font class=""onz"">" & rsc("nome_categoria") & "</font></td></tr>"rsc.movenextloopresponse.write "</table>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Costumo fazer algo assim:

ASP
  1. Grupo " "
     
  2. while not rsc.eof
     
  3. If Grupo <> rsc("CampodoGrupo"Then
     
  4. Response.Write rsc("CampodoGrupo")
     
  5. End If
     
  6. response.write "<tr><td height=""17"" class=""bmc""><font class=""onz"">" & rsc("nome_categoria") & "</font></td></tr>"
     
  7. Grupo rsc("CampodoGrupo")
     
  8. rsc.movenext
     
  9. Wend

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado novamente.Como eu faço para selecionar o campo CampodoGrupo que seria na verdade nome_grupo no Select?SQLc = "SELECT codigo_categoria,nome_categoria from Categorias INNER JOIN Grupos ON Categorias.grupo = Grupos.codigo_grupo"Por que está dando o erro:ADODB.Recordset erro '800a0cc1' O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe ali no select amigo o nome do campo que você quer...se tiver campos com o mesmo nome nas duas tabelas ai você identifica qual tabela é qual senão pode ser direto mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai marioufpa, muito obrigado. Realmente estou muito agradecido. Consegui fazer o que eu queria, com a sua força.O select ficou assim:SQLc = "SELECT Grupos.nome_grupo, Categorias.codigo_categoria, Categorias.nome_categoria from Categorias INNER JOIN Grupos ON Categorias.grupo = Grupos.codigo_grupo"Eu não estava acertando a ordem da chamada do campo nome_grupo.Valeu pela ajuda. Muito Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai vai o código para quem quiser usar:dim rsc, sqlcSQLc = "SELECT Grupos.nome_grupo, Categorias.codigo_categoria, Categorias.nome_categoria from Categorias INNER JOIN Grupos ON Categorias.grupo = Grupos.codigo_grupo"set rsc = conn_c.execute(sqlc)response.write "<table border=""0"" cellpadding=""0"" cellspacing=""0"">"grupo = " "do while not rsc.eofif grupo <> rsc("nome_grupo") thenresponse.write "<tr><td height=""27"" class=""bms""><font class=""onz"">" & rsc("nome_grupo") & ":</font></td></tr>"end ifresponse.write "<tr><td height=""17""><a href=""categorias.asp?cat=" & rsc("codigo_categoria") & """ class=""bmc"">" %><% if cat = "" & rsc("codigo_categoria") & "" then %><% response.write "<font color=""#000000"" class=""doz""><b>" & rsc("nome_categoria") & "</b></font>" %><% else %><% response.write "<font class=""onz""><b>" & rsc("nome_categoria") & "</b></font>" %><% end if %><% response.write "</a></td></tr>"grupo = rsc("nome_grupo")rsc.movenextloopresponse.write "</table>"set rsc = nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai marioufpa, muito obrigado. Realmente estou muito agradecido. Consegui fazer o que eu queria, com a sua força.

 

Valeu pela ajuda. Muito Obrigado.

de nada amigo http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai marioufpa, se você estiver ai, ou a galera se alguém puder ajudar.Ocorreu que fui criar uma nova categoria, e esta nova categoria saiu em local errado sendo que deveria estar agrupada com as outras, ficou assim:Semi Fechados: Fechado Baixo Fechado Alto Chinelos Infantis: Palha Baixo Semi Fechados: (Repetiu o grupo)Infantil (Nova Categoria em local errado)Quando deveria ser assim:Semi Fechados: Fechado Baixo Fechado Alto Infantil (Nova Categoria em local certo)Chinelos Infantis: Palha Baixo Fiz um teste e mudei a posição da nova categoria no banco de dados, e coloquei logo abaixo das outras, desta forma elas ficarma agrupadas, esquisito.Tem como agrupá-las sem mexer no banco? Talvez usar um "GROUP BY alguma coisa".O Select é este: SQLc = "SELECT Grupos.codigo_grupo, Grupos.nome_grupo, Categorias.codigo_categoria, Categorias.nome_categoria from Categorias INNER JOIN Grupos ON Categorias.grupo = Grupos.codigo_grupo"Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi bem como esta retornando os valores ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi bem como esta retornando os valores ...

<{POST_SNAPBACK}>

Saca só amigo,

 

A nova categoria deveria aparecer em baixo da "Fechado Alto" no grupo "Semi Fechados", assim:

 

Semi Fechados: (Grupo)

Fechado Baixo

Fechado Alto

Infantil (Nova Categoria)

 

Ocorre que ficou assim. Repetiu-se o grupo "Semi Fechados", e categoria apareceu em baixo deste grupo repetido e ainda ficou em baixo de outro grupo chamado "Chinelos Infantis", assim:

 

Semi Fechados:

Fechado Baixo

Fechado Alto

(Aqui deveria esta a nova categoria)

 

Chinelos Infantis:

Palha Baixo

 

Semi Fechados: (Repetiu o grupo)

Infantil (Nova Categoria em local errado)

 

 

Espero que eu tenha conseguido explicar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

seleciona organizando pela categoria....assim vira os itens de cara categoria um atras do outro, mas a categoria vira junto tb...confesso que ainda não entendi o blema direito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe se não consegui explicar, mas eu resolvi problema dando um order by.

 

Obrigado pela ajuda.

foi mais ou menos o que eu consegui entender...

 

que bom que resolveu..

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.