
Sql
Started By w@shin ! ! !, 05/03/2006, 18:23
8 replies to this topic
#1
Posted 05/03/2006, 18:23
Olá pessoal, não sei se entederam qual é o meu problema... Tenho uma tabela chamada categoria e outra produtos:
Categoria:
codcategoria
nomecategora
Produtos:
codproduto
codcategoria
nomeproduto
preco
Tenho uma categoria chamada Refrigerantes, e essa categoria pentencem vários produtos (Coca Cola, Fanta, etc) . Meu problema é o seguinte qdo faço a consulta sql , busco no Bd os campos: codcategoria, nomeproduto e preco... Porém quero que o código da categoria apareça apenas uma vez... como tenho por exemplo dois tipos de refrigerantes (Coca e Fanta) , o nome da categoria (Refrigerante) aparece duas vezes...
ATual
Resultado atual
Desejado:
Resultado Desejado
Categoria:
codcategoria
nomecategora
Produtos:
codproduto
codcategoria
nomeproduto
preco
Tenho uma categoria chamada Refrigerantes, e essa categoria pentencem vários produtos (Coca Cola, Fanta, etc) . Meu problema é o seguinte qdo faço a consulta sql , busco no Bd os campos: codcategoria, nomeproduto e preco... Porém quero que o código da categoria apareça apenas uma vez... como tenho por exemplo dois tipos de refrigerantes (Coca e Fanta) , o nome da categoria (Refrigerante) aparece duas vezes...
ATual
Resultado atual
Desejado:
Resultado Desejado
http://www.cashfiest....php?ref=washin
Dinheiro extra
Dinheiro extra
#2
Posted 05/03/2006, 18:51
é so vc resgatar o cod da categoria e fazer um loop dentro da tabela produtos .. basicamente é fazer uma consulta em outra tabela dentro de um loop ... Não sei se vai funcionar mas tenta isso... (claro que tem que da uma adaptada)
Valeu
Set Con = Server.CreateObject("ADODB.Connection") Conect = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("banco.mdb") Con.Open Conect <% Set rs = Server.CreateObject("ADODB.Recordset") cat = "SELECT * FROM categoria" rs.open cat, conect If RS.eof then response.write ("Não há categorias cadastrados") else RS.movefirst Do cod = rs("codcategoria") Set rsp = Server.CreateObject("ADODB.Recordset") pro = "SELECT * FROM produtos where codcategoria = '"&cod&"' ORDER BY produtoid DESC" rsp.open pro, conect If rsp.eof then response.write ("Não há acessorios cadastrados") else rsp.movefirst Do %> <%=rsp("nomeproduto")%><br> <%=rsp("preco")%><br> <% rsp.movenext Loop until rsp.eof End if rsp.Close set rsp = Nothing Rs.movenext Loop until RS.eof End if rs.close set rs = nothing %>
Valeu

Edição feita por: replay, 05/03/2006, 18:56.
Não me adicione no MSN pq eu não vo te ajuda... se insistir eu vo ser grosso!!!
Ta com dúvida pergunta aqui no fórum...
Grato
Ta com dúvida pergunta aqui no fórum...
Grato
#3
Posted 05/03/2006, 22:11
recomendo um DISTINCT() no sql
select distinct(CAMPO1),* From TABELA
...
#4
Posted 06/03/2006, 03:33
Olá , estou tentando com outra tabela aqui para ver se consigo,.. Tenho a tabela alunos e Séries... Não quero qea a séries se repitam. Prém não estou conseguindo
Abaixo segue o código
<%
Dim objConn, rsquery
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\teste.mdb;"
set rsquery = objConn.execute("select distinct codigoserie, nomes from aluno )
while not rsquery.eof
response.write rsquery("codigoserie") & "<br>"
response.write rsquery("nomes") & "<br>"
rsquery.movenext
wend
%>
O resultado final aparece assim:
1
Ariana
2
João
2
Washington
Note que o código da série (2) se repete
Abaixo segue o código
<%
Dim objConn, rsquery
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\teste.mdb;"
set rsquery = objConn.execute("select distinct codigoserie, nomes from aluno )
while not rsquery.eof
response.write rsquery("codigoserie") & "<br>"
response.write rsquery("nomes") & "<br>"
rsquery.movenext
wend
%>
O resultado final aparece assim:
1
Ariana
2
João
2
Washington
Note que o código da série (2) se repete
http://www.cashfiest....php?ref=washin
Dinheiro extra
Dinheiro extra
#5
Posted 06/03/2006, 11:55
<% Dim objConn, rsquery Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\teste.mdb;" set rsquery = objConn.execute("select DISTINCT(codigoserie, nomes) from aluno ) while not rsquery.eof response.write rsquery("codigoserie") & "<br>" response.write rsquery("nomes") & "<br>" rsquery.movenext wend %>
...
#6
Posted 06/03/2006, 12:26
agora dá erro mesmo:
Tipo de erro:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (vírgula) na expressão de consulta '(codigoserie, nomes)'.
/acesso3.asp, line 9
Tipo de erro:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (vírgula) na expressão de consulta '(codigoserie, nomes)'.
/acesso3.asp, line 9
Edição feita por: w@shin ! ! !, 06/03/2006, 12:27.
http://www.cashfiest....php?ref=washin
Dinheiro extra
Dinheiro extra
#7
Posted 07/03/2006, 15:12
<% Dim objConn, rsquery Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\teste.mdb;" set rsquery = objConn.execute("select DISTINCT(codigoserie) from aluno ) while not rsquery.eof response.write rsquery("codigoserie") & "<br>" response.write rsquery("nomes") & "<br>" rsquery.movenext wend %>
Edição feita por: Humberto - S.O.S., 07/03/2006, 15:13.
...
#8
Posted 07/03/2006, 15:43
valeu ae pessoal, consegui... O código ficou assim:
<% Dim objConn, rs, rs2, sql, varserie, i Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\teste.mdb;" set rs = objConn.execute("Select distinct(serie) from aluno") do while rs.eof = false i = rs("serie") set rs2 = objConn.execute("Select * from aluno where serie = '"&i&"' ") Response.write "<b>" & rs2("serie") & "</b>" & "<br>" do while rs2.eof = false Response.Write Rs2("nome") & "<br>" Rs2.Movenext loop rs.movenext loop %>
http://www.cashfiest....php?ref=washin
Dinheiro extra
Dinheiro extra
#9
Posted 07/03/2006, 18:16
uffa 
é nada que o distinct não faça
Qualquer coisa poste.

é nada que o distinct não faça

Qualquer coisa poste.
...
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)