Thiago K. Postado Setembro 10, 2009 Denunciar Share Postado Setembro 10, 2009 (editado) Olá pessoal,Estou com um problema aqui.Tenho uma tabela de lojas que está relacionada com uma tabela de cidades e outra de estados. O que eu quero é basicamente não mostrar as cidades e os estados que não possuem um escritório relacionado.Será que deu para entender? :blink: O código:<% Set rsCidades = Server.CreateObject("ADODB.RecordSet") sql = "" sql = sql & " SELECT a.ID, a.cidade, b.uf " sql = sql & " FROM tb_cidades A, tb_estados b " sql = sql & " WHERE a.IDestado = b.ID " rsCidades.Open SQL, Conexao, 3, 3 %> <%While NOT rsCidades.EOF%> <p><%=rsCidades(1)%> - <%=rsCidades(2)%></p> <% Set rsUnidadesLista = Server.CreateObject("ADODB.RecordSet") sql = "" sql = sql & " SELECT ID, nome " sql = sql & " FROM tb_unidades " sql = sql & " WHERE IDtipo = 1 " sql = sql & " AND status = 1 " sql = sql & " AND cidade = "&rsCidades(0)&" " sql = sql & " ORDER BY ordem ASC " rsUnidadesLista.Open SQL, Conexao, 3, 3 While NOT rsUnidadesLista.EOF %> <p><a href="unidades_detalhe.asp?ID=<%=rsUnidadesLista(0)%>"> › <%=rsUnidadesLista(1)%></a></p> <% rsUnidadesLista.MoveNext() Wend %> <% rsCidades.MoveNext() Wend end if %>O resultado:Notem, que somente Campinas e Uberlândia possuem escritório, então não queria mostrar as outras cidades/estados.São Paulo - SPGuarulhos - SPBarueri - SPCampinas - SP› Escritório em CampinasJundiaí - SPValinhos - SPUberlândia - MG› Escritório em UberlândiaO ideal seria:Campinas - SP› Escritório em CampinasUberlândia - MG› Escritório em UberlândiaSerá que alguém pode me ajudar?Agradeço desde já... Editado Setembro 11, 2009 por Thiago K. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 10, 2009 Denunciar Share Postado Setembro 10, 2009 use INNER JOIN ou 3 selects.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 10, 2009 Autor Denunciar Share Postado Setembro 10, 2009 INNER quem?! (rs) :blink: Putz, sou um amador!!Não manjo tanto, mas como seria essa opção dos 3 selects hehe deve ser mais fácil :P De qualquer forma, muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 10, 2009 Autor Denunciar Share Postado Setembro 10, 2009 use INNER JOIN ou 3 selects....Olá bareta,Cara você realmente me deu uma luz, porque de curioso fui no teu blog e vi como funciona o tal do INNER JOIN.Agora, consegui mostrar apenas as cidades que tem escritório, mas preciso agrupá-las. Usei o GROUP BY, mas não deu certo. Onde estou errando?<% Dim Conexao, rsProdutos, strSQL strSQL = "SELECT tb_unidades.ID, tb_unidades.nome, tb_cidades.cidade " strSQL = strSQL & "FROM tb_unidades " strSQL = strSQL & "INNER JOIN tb_cidades " strSQL = strSQL & "ON tb_unidades.cidade = tb_cidades.ID " strSQL = strSQL & " WHERE tb_unidades.IDtipo = 2 " strSQL = strSQL & "GROUP BY tb_unidades.cidade, tb_unidades.ID, tb_unidades.nome, tb_cidades.cidade " strSQL = strSQL & "ORDER BY tb_unidades.cidade " 'Call Conexao Set rsProdutos = Server.CreateObject("ADODB.Recordset") Set rsProdutos = Conexao.Execute(strSQL) 'Response.Write "" & rsProdutos(2) & "" While Not rsProdutos.EOF Response.Write "<br />" & rsProdutos(2) & "" Response.Write "<br />unidade: " & rsProdutos(1) & "" rsProdutos.MoveNext Wend rsProdutos.Close 'Call Conexao Set rsProdutos = Nothing %>O resultado está assim:São Paulounidade: Moema ÍndiosSão Paulounidade: PinheirosSão Paulounidade: Alto de PinheirosSão Paulounidade: Vila LeopoldinaSão Paulounidade: TatuapéSão Paulounidade: HigienópolisSão Paulounidade: PerdizesSão Paulounidade: MorumbiSão Paulounidade: Aclimação São Paulounidade: PompéiaSão Paulounidade: JardinsGuarulhosunidade: GuarulhosBarueriunidade: Shopping TamboréCampinasunidade: CambuíJundiaíunidade: JundiaíValinhosunidade: Shopping ValinhosMuito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 11, 2009 Autor Denunciar Share Postado Setembro 11, 2009 Resolvido?! Que nadaaaa...Ainda está repetindo e eu estou tentando agrupar.alguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Setembro 11, 2009 Denunciar Share Postado Setembro 11, 2009 Foi mal, marquei como Resolvido.Mas já foi desmarcado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 11, 2009 Denunciar Share Postado Setembro 11, 2009 use distinct... nas cidades Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 11, 2009 Autor Denunciar Share Postado Setembro 11, 2009 (editado) <% Dim Conexao, rsProdutos, strSQL strSQL = "SELECT tb_unidades.ID, tb_unidades.nome, tb_cidades.cidade " strSQL = strSQL & "FROM tb_unidades " strSQL = strSQL & "INNER JOIN tb_cidades " strSQL = strSQL & "ON tb_unidades.cidade = tb_cidades.ID " strSQL = strSQL & " WHERE tb_unidades.IDtipo = 2 " strSQL = strSQL & "GROUP BY tb_unidades.cidade, tb_unidades.ID, tb_unidades.nome, tb_cidades.cidade " 'Call Conexao Set rsProdutos = Server.CreateObject("ADODB.Recordset") Set rsProdutos = Conexao.Execute(strSQL) 'Response.Write "" & rsProdutos(2) & "" While Not rsProdutos.EOF Response.Write "<br />" & rsProdutos(2) & "" Response.Write "<br />unidade: " & rsProdutos(1) & "" rsProdutos.MoveNext Wend rsProdutos.Close 'Call Conexao Set rsProdutos = Nothing %>Em qualquer lugar que eu coloco o DISTINCT da erro. Editado Setembro 11, 2009 por Thiago K. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 11, 2009 Denunciar Share Postado Setembro 11, 2009 distinct tem q ser nmo primeiro campo da sql se não da erro...se o group funcionou também fica legal Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 11, 2009 Autor Denunciar Share Postado Setembro 11, 2009 O DISTINCT da erro mesmo!E o GROUP não está funcionando, não sei mais o que fazer.O resultado fica assim:São Paulounidade: Moema ÍndiosSão Paulounidade: PinheirosSão Paulounidade: Alto de PinheirosSão Paulounidade: Vila LeopoldinaSão Paulounidade: TatuapéSão Paulounidade: HigienópolisSão Paulounidade: PerdizesSão Paulounidade: MorumbiSão Paulounidade: Aclimação São Paulounidade: PompéiaSão Paulounidade: JardinsGuarulhosunidade: GuarulhosBarueriunidade: Shopping TamboréCampinasunidade: CambuíJundiaíunidade: JundiaíValinhosunidade: Shopping Valinhos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 14, 2009 Denunciar Share Postado Setembro 14, 2009 como eu disse o distinct tem q ser o primeiro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 14, 2009 Autor Denunciar Share Postado Setembro 14, 2009 como eu disse o distinct tem q ser o primeiroOk, bareta, eu já entendi e também como já disse, quando uso DISTINCT retorna com erro.Pode me ajudar?Obrigado.O código está abaixo:<% Dim Conexao, rsProdutos, strSQL strSQL = "SELECT DISTINCT tb_unidades.ID, tb_unidades.nome, tb_cidades.cidade " strSQL = strSQL & " FROM tb_unidades " strSQL = strSQL & " INNER JOIN tb_cidades " strSQL = strSQL & " ON tb_unidades.cidade = tb_cidades.ID " strSQL = strSQL & " WHERE tb_unidades.IDtipo = 2 " Set rsProdutos = Server.CreateObject("ADODB.Recordset") Set rsProdutos = Conexao.Execute(strSQL) While Not rsProdutos.EOF Response.Write "<br />" & rsProdutos(2) & "" Response.Write "<br />unidade: " & rsProdutos(1) & "" rsProdutos.MoveNext Wend rsProdutos.Close Set rsProdutos = Nothing %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 14, 2009 Denunciar Share Postado Setembro 14, 2009 algo do tipostrSQL = "SELECT DISTINCT(tb_cidades.cidade), tb_unidades.ID, tb_unidades.nome" strSQL = strSQL & " FROM tb_unidades " strSQL = strSQL & " INNER JOIN tb_cidades " strSQL = strSQL & " ON tb_unidades.cidade = tb_cidades.ID " strSQL = strSQL & " WHERE tb_unidades.IDtipo = 2 " Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago K. Postado Setembro 16, 2009 Autor Denunciar Share Postado Setembro 16, 2009 algo do tipostrSQL = "SELECT DISTINCT(tb_cidades.cidade), tb_unidades.ID, tb_unidades.nome" strSQL = strSQL & " FROM tb_unidades " strSQL = strSQL & " INNER JOIN tb_cidades " strSQL = strSQL & " ON tb_unidades.cidade = tb_cidades.ID " strSQL = strSQL & " WHERE tb_unidades.IDtipo = 2 "Olá bareta,Infelizmente ainda não consegui resolver esse problema.Fiz exatamente como me passou, mas ainda aparece assim:Barueri› Shopping TamboréCampinas› CambuíGuarulhos› GuarulhosJundiaí› JundiaíSão Paulo› Moema ÍndiosSão Paulo› PinheirosSão Paulo› Alto de PinheirosSão Paulo› Vila LeopoldinaSão Paulo› TatuapéSão Paulo› HigienópolisSão Paulo› PerdizesSão Paulo› MorumbiSão Paulo› AclimaçãoSão Paulo› PompéiaSão Paulo› JardinsValinhos› Shopping Valinhos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 16, 2009 Denunciar Share Postado Setembro 16, 2009 você vai usar o tb_unidades.ID em algum lugar??tire ele do select, pegue so os outros dois campos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 smez Postado Setembro 17, 2009 Denunciar Share Postado Setembro 17, 2009 você esta usando que tipo de banco de dados, se você estiver usando sql server, cria uma view que fica mais facil depois para você fazer.a view já relaciona as tabelas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Thiago K.
Olá pessoal,
Estou com um problema aqui.
Tenho uma tabela de lojas que está relacionada com uma tabela de cidades e outra de estados.
O que eu quero é basicamente não mostrar as cidades e os estados que não possuem um escritório relacionado.
Será que deu para entender? :blink:
O código:
O resultado:
Notem, que somente Campinas e Uberlândia possuem escritório, então não queria mostrar as outras cidades/estados.
São Paulo - SP
Guarulhos - SP
Barueri - SP
Campinas - SP
› Escritório em Campinas
Jundiaí - SP
Valinhos - SP
Uberlândia - MG
› Escritório em Uberlândia
O ideal seria:
Campinas - SP
› Escritório em Campinas
Uberlândia - MG
› Escritório em Uberlândia
Será que alguém pode me ajudar?
Agradeço desde já...
Editado por Thiago K.Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.