Foros del Web » Programando para Internet » ASP Clásico »

Problemas con un SQL anidado

Estas en el tema de Problemas con un SQL anidado en el foro de ASP Clásico en Foros del Web. Hola a todos: Soy nuevo en esto de la programación, pero tengo un problema grande que no puedo resolver ojala y alguien pueda ayudarme.... El ...
  #1 (permalink)  
Antiguo 25/01/2008, 12:22
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Problemas con un SQL anidado

Hola a todos:

Soy nuevo en esto de la programación, pero tengo un problema grande que no puedo resolver ojala y alguien pueda ayudarme....

El problema es el siguiente:

Tengo una tabla llamada "ventas" con la siguiente estructura: "tipo" text, "claveprod" text, "cant" text, "precio" real, "fecha" date, "numfact" text, "nomcte" text, "rfc" text, "direccion" text, "idusr" int ... lo que pretendo hacer con ella es extraer un reporte de ventas por cliente en el que me registre la siguiente informacion:

Nombre del Cliente----RFC
Factura 1
Producto 1
Producto 2
Producto 3
...
Producto n
Factura 2
Producto 1
Producto 2
Producto 3
...
Producto n
...
Factura n
Producto 1
Producto 2
Producto 3
...
Producto n

Yo lo pretendo hacer con varios SELECTS, este es el codigo que estoy usando:
<%
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")& "' AND numfact like '"& rs("nombre")&"'"
rs2.open sql, conexion
if not rs2.EOF then
response.write("ID:" & rs("id")& " " & "NOMBRE:" & rs2("nomcte") &" " & "RFC:" & rs2("rfc") &" " & "FACTURA:" & rs2("numfact") & "<br>")
end if
rs2.close
rs.movenext
loop
%>

Al ejecutar este codigo no me muestra ningun resultado, por lo que no sé exactamente que es lo que este pasando.

Les pido su colaboración urgente para saber cual es la falla... de antemano muchas gracias....

Saludos....
  #2 (permalink)  
Antiguo 25/01/2008, 12:32
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Problemas con un SQL anidado

en esta parte, por que usas el nombre para los dos parametros????

sql="SELECT nomcte,rfc,numfact FROM ventas WHERE nomcte like '" &rs("nombre")& "' AND numfact like '"& rs("nombre")&"'"

olvidaste cambiarlo???
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 25/01/2008, 12:40
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Problemas con un SQL anidado

lo que pasa es que no sé como comparar que la consulta me muetre el Nº de las facturas(cuantas sean)..correspondientes a un solo cliente... ahi creo es donde esta el problema... si a la consulta yo le quito esta parte : AND numfact like '"& rs("nombre")&"'" lo que me muestra la consulta es:

Nombre de cliente -- RFC -- Nº de Factura--

pero solo el numero de la primer factura que encuentra, si existen mas de 1 factura para este cliente no me las muestra...

Saludos... y agradezco enormemente tu ayuda...
  #4 (permalink)  
Antiguo 25/01/2008, 12:51
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Problemas con un SQL anidado

ok, pero en "NUMFACT" tienes escrito el nombre del cliente??? no utilizas su ID??
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 25/01/2008, 13:00
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Problemas con un SQL anidado

Pues ya puse el ID pero aún me sigue sin mostrar nada como resultado... no sé a que se deba... si le quito el numfact like '"& rs("id")&"'" y lo pongo como numfact="& rs("id") me dice que "text es incompatible con tinyint"...

Ojála puedas ayudarme....

Saludos...
  #6 (permalink)  
Antiguo 25/01/2008, 14:33
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Problemas con un SQL anidado

mira, hagamos esto, dejemos la busqueda en un solo parametro de esta forma, ok?

Código HTML:
<%
sql="SELECT nombre,id FROM clientes ORDER BY id ASC"
set RS=conexion.execute(sql)
if err=0 then
    if rs.eof=false the
        clientes=rs.getrows
        rs.close
        for i=0 to ubound(clientes,2)
            sql="SELECT nomcte, rfc, numfact FROM ventas WHERE nomcte = '" &_
                clientes(0,i) & "';"
            Set RS=conexion.execute(sql)
            if Err=0 then
                if RS.EOF=FALSE then
                    while RS.EOF=FALSE
                        response.write("ID:" & rs("id")& " " & "NOMBRE:" & rs2("nomcte") &" " & "RFC:" & rs2("rfc") &" " & "FACTURA:" & rs2("numfact") & "<br>")
                        RS.movenext
                    wend
                else
                    response.Write "no se encontraron recibos para este cliente"
                end if
            else
                response.Write "Error de programacion<br />Consulta " & SQL &"<br />"& Err
            end if
            rs.close
        next
    else
        response.Write "No se encontraron clientes"
    end if
else
    response.Write "Error de programacion<br />Consulta " & SQL &"<br />"& Err
end if
conexion.close
set RS=nothing
set conexion=nothing
%> 
haz una prueba, fijate si te trae parametros o despliega algo
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 25/01/2008, 15:30
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Problemas con un SQL anidado

Me marca ocurre una excepcion en la linea resaltada en rojo...

Código HTML:
<%
sql="SELECT nombre,id FROM clientes ORDER BY id ASC"
set RS=conexion.execute(sql)
if err=0 then
    if rs.eof=false the
        clientes=rs.getrows
        rs.close
        for i=0 to ubound(clientes,2)
            sql="SELECT nomcte, rfc, numfact FROM ventas WHERE nomcte = '" &_
                clientes(0,i) & "';"
            Set RS=conexion.execute(sql)
            if Err=0 then
                if RS.EOF=FALSE then
                    while RS.EOF=FALSE
                        [COLOR="Red"]response.write("ID:" & rs("id")& " " & "NOMBRE:" & rs2("nomcte") &" " & "RFC:" & rs2("rfc") &" " & "FACTURA:" & rs2("numfact") & "<br>")[/COLOR]
                        RS.movenext
                    wend
                else
                    response.Write "no se encontraron recibos para este cliente"
                end if
            else
                response.Write "Error de programacion<br />Consulta " & SQL &"<br />"& Err
            end if
            rs.close
        next
    else
        response.Write "No se encontraron clientes"
    end if
else
    response.Write "Error de programacion<br />Consulta " & SQL &"<br />"& Err
end if
conexion.close
set RS=nothing
set conexion=nothing
%> 
no sé a que se deba...

Saludos...
  #8 (permalink)  
Antiguo 25/01/2008, 15:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Problemas con un SQL anidado

asi es, debido a que no existe un RS2, solamente RS, y no existe en ese momento RS("id"), en este caso es clientes(1,i) por lo tanto esa parte quedaria de esta manera

Código PHP:
                    while RS.EOF=FALSE
                        response
.write("ID:" clientes(1,i)& " " "NOMBRE:" RS("nomcte") &" " "RFC:" RS("rfc") &" " "FACTURA:" RS("numfact") & "<br>")
                        
RS.movenext
                    wend 
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 25/01/2008, 15:45
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Problemas con un SQL anidado

Perfecto muchas gracias por tu ayuda...

Saludos....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:19.