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)











