ASP - Problema con una consulta SQL..

 
Vista:

Problema con una consulta SQL..

Publicado por Ismael (3 intervenciones) el 26/01/2008 18:38:05
Hola a todos:

Tengo el siguiente código..
---------------------------------------------------------------------------------------------------------------------------
<%

set rs=server.CreateObject("adodb.recordset")
set rs2=server.CreateObject("adodb.recordset")
sql="SELECT nombre,id FROM clientes ORDER BY id ASC"
rs.open sql, conexion
do while not rs.EOF
sql="SELECT nomcte,rfc,numfact FROM ventas WHERE nomcte like '" &rs("nombre")& "'"
rs2.open sql, conexion
do while not rs2.EOF
response.write("ID:" & rs("id")& " " & "NOMBRE:" & rs2("nomcte") &" " & "RFC:" & rs2("rfc") &" " & "FACTURA:" & rs2("numfact") & "<br>")
rs2.movenext
loop
rs2.close
rs.movenext
loop
rs.close

%>
---------------------------------------------------------------------------------------------------------------------------
Que extrae los siguientes datos:

************************************************
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222333
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222334
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222333
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222334
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222333
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222334
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222333
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165 FACTURA:111222334
************************************************
Ahora el problema es que quiero que me muestre solamente los datos, de esta forma:
************************************************
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165
FACTURA:111222333
FACTURA:111222334
************************************************
y asi con cualquier cliente que encuentre...

¿¿..ALGUNA SUGERENCIA..??

Se los agradeceré enormemente...

Saludos...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con una consulta SQL..

Publicado por www.mirulu.com (57 intervenciones) el 26/01/2008 21:37:16
Creo entender que lo que necesitas es un group by, busca en san google como hacer el group by que necesites. Si no te sirve podrias solucionarlo con un simple contador dentro de tu bucle, pintando el id solo en la primera vuelta y en las demas pintar solamente los datos que necesites.... por ejemplo

s.open sql, conexion
do while not rs.EOF
sql="SELECT nomcte,rfc,numfact FROM ventas WHERE nomcte like '" &rs("nombre")& "'"
rs2.open sql, conexion
i=0
do while not rs2.EOF
if i = 0 then
'pintas tu id o lo que necesites
end if
'aqui pintas el resto de tu informacion
i=i+1
rs2.movenext
loop
rs2.close
rs.movenext
loop
rs.close
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con una consulta SQL..

Publicado por Ismael (3 intervenciones) el 28/01/2008 18:46:25
Hola Miguel:

Agradezco la ayuda que me ofreces y, en efecto ha servido de mucho, pero aun asi tengo un problema más, ojála y puedas ayudarme, ahora te lo describo...

El código que ahora utilizo(ya con tu sugerencia incluida) es el siguiente:
---------------------------------------------------------------------------------------------------
set rs=server.CreateObject("adodb.recordset")
set rs2=server.CreateObject("adodb.recordset")
sql="SELECT nombre,id FROM clientes ORDER BY id ASC"
rs.open sql, conexion
do while not rs.EOF
sql="SELECT nomcte,rfc,numfact FROM ventas WHERE nomcte like '" &rs("nombre")& "'"
rs2.open sql, conexion
i=0
do while not rs2.EOF
if i=0 then
response.write("ID:" & rs("id")& " " & "NOMBRE:" & rs2("nomcte") &" " & "RFC:" & rs2("rfc") & "<br>")
end if
response.write("FACTURA:" & rs2("numfact") & "<br>")
i=i+1
rs2.movenext
loop
rs2.close
rs.movenext
loop
rs.close
---------------------------------------------------------------------------------------------------

Y el resultado que me muestra es:
---------------------------------------------------------------------------------------------------
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165
FACTURA:111222333
FACTURA:111222334
FACTURA:111222333
FACTURA:111222334
FACTURA:111222333
FACTURA:111222334
FACTURA:111222333
FACTURA:111222334
---------------------------------------------------------------------------------------------------

Obviamente el resultado que yo persigo es que me muestre los datos de esta forma:
---------------------------------------------------------------------------------------------------
ID:4 NOMBRE:Superparangaricutirimicuaro RFC:sd5156165
FACTURA:111222333
Producto 1
Producto 2
Producto 3

FACTURA:111222334
Producto 1
Producto 2
Producto 3
---------------------------------------------------------------------------------------------------

Según mi forma de ver las cosas, creo que me hace falta filtrar el "numero de factura" en el SELECT o tambien se me ocurre hacerlo con un indice que me permita saber cuando un "numero de factura" se repite y ya no pintarlo nuevamente, pero sinceramente no sé como hacerlo; ojála y pudieras ayudarme a solucionar este problema...

Saludos cordiales....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar