Jump to content


Photo

Sql


  • Faça o login para participar
8 replies to this topic

#1 w@shin ! ! !

w@shin ! ! !

    Normal

  • Usuários
  • 109 posts
  • Sexo:Não informado
  • Interesses:Hardware , Dream weaver , flash e Corel Draw . . .

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

#2 replay

replay

    Agora a vida começa...

  • Usuários
  • 421 posts
  • Sexo:Não informado

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)

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 :P

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

#3 Humberto - S.O.S.

Humberto - S.O.S.

    ...

  • Banidos
  • PipPipPipPipPip
  • 463 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo - SP

Posted 05/03/2006, 22:11

recomendo um DISTINCT() no sql

select distinct(CAMPO1),* From TABELA

...

#4 w@shin ! ! !

w@shin ! ! !

    Normal

  • Usuários
  • 109 posts
  • Sexo:Não informado
  • Interesses:Hardware , Dream weaver , flash e Corel Draw . . .

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

#5 Humberto - S.O.S.

Humberto - S.O.S.

    ...

  • Banidos
  • PipPipPipPipPip
  • 463 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo - SP

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 w@shin ! ! !

w@shin ! ! !

    Normal

  • Usuários
  • 109 posts
  • Sexo:Não informado
  • Interesses:Hardware , Dream weaver , flash e Corel Draw . . .

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

Edição feita por: w@shin ! ! !, 06/03/2006, 12:27.


#7 Humberto - S.O.S.

Humberto - S.O.S.

    ...

  • Banidos
  • PipPipPipPipPip
  • 463 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo - SP

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 w@shin ! ! !

w@shin ! ! !

    Normal

  • Usuários
  • 109 posts
  • Sexo:Não informado
  • Interesses:Hardware , Dream weaver , flash e Corel Draw . . .

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
%>


#9 Humberto - S.O.S.

Humberto - S.O.S.

    ...

  • Banidos
  • PipPipPipPipPip
  • 463 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo - SP

Posted 07/03/2006, 18:16

uffa :D

é nada que o distinct não faça :P

Qualquer coisa poste.
...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq