none
Dos consultas en la misma tabla. RRS feed

  • Pregunta

  • Hola

    Tengo una SQL que ha de buscar dos veces en la misma tabla   tborders

    Me da el siguiente error:

    Error de Microsoft VBScript en tiempo de ejecución error '800a01a8'Se requiere un objeto: ''

    ¿Alguien me puede ayudar por favor?

     ssqltb1 = " SELECT P.ordernumber, P.orderdate, P.orderproductcode, P.orderquantityinstock, P.orderquantityinstock, P.orderinternalcode, P.orderproductcode, PR.orderkind, PR.orderinternalcode, PR.orderproductcode, PR.ordercussupcode, PR.orderdate " + _
     " FROM tborders P " + _
     " INNER JOIN tborders PR ON PR.orderkind = 'fc' AND PR.orderinternalcode = '"&P.orderinternalcode&"' AND PR.orderproductcode = '"&P.orderproductcode&"' " + _
     " WHERE (P.orderquantityinstock > 0) " + _
     " ORDER BY P.orderproductcode, P.orderquantityinstock "
     SET tb1 = Server.CreateObject("adodb.RecordSet")
     tb1.Open ssqltb1,ConData,0,1
     Do While NOT tb1.EOF
      Response.write "<br>El " & tb1("P.ordernumber") & " de fecha: " & tb1("P.orderdate")
      Response.Write " Fue comprado al proveedor: " & tb1("PR.ordercussupcode") & " En la fecha: " & tb1("PR.orderdate")
     tb1.MoveNext
     Loop
     tb1.Close
     SET tb1 = Nothing

    miércoles, 28 de septiembre de 2016 11:33

Respuestas

  • Me pregunto si esta linea deberia cambiarse:

    > " FROM tborders P " + _
    >  " INNER JOIN tborders PR ON PR.orderkind = 'fc' AND PR.orderinternalcode = '"&P.orderinternalcode&"' AND
    > PR.orderproductcode = '"&P.orderproductcode&"' " + _

    " FROM tborders P " + _
     " INNER JOIN tborders PR ON PR.orderkind = 'fc' AND PR.orderinternalcode = P.orderinternalcode AND PR.orderproductcode = P.orderproductcode " + _


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    • Marcado como respuesta jorge1.6.4.4 miércoles, 28 de septiembre de 2016 18:26
    miércoles, 28 de septiembre de 2016 12:41
  • jorge1.6.4.4,

    Dos observaciones:

    Primero, para contener una cadena en mas de una linea debes de usar el guión bajo y luego el caracter '&' de concatenación, el caracter '+' creo que no aplica para estos casos.

    ssqltb1 = "SELECT P.ordernumber, P.orderdate, " _
        & "FROM tborders P " _
        & "INNER JOIN tborders PR" 

    Segundo, el error 'se requiere un objeto' generalmente se obtiene cuando el calificador de un objeto no es correcto, noto que haces referencia a una columna con el nombre del alias mas el nombre de columna y eso no es correcto:

    Do While NOT tb1.EOF
            Response.write "<br>El " & tb1("ordernumber") & " de fecha: " & tb1("orderdate")
            Response.Write " Fue comprado al proveedor: " & tb1("ordercussupcode") & " En la fecha: " & tb1("orderdate")
            tb1.MoveNext
    Loop


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta jorge1.6.4.4 miércoles, 28 de septiembre de 2016 18:26
    miércoles, 28 de septiembre de 2016 13:53

Todas las respuestas

  • Me pregunto si esta linea deberia cambiarse:

    > " FROM tborders P " + _
    >  " INNER JOIN tborders PR ON PR.orderkind = 'fc' AND PR.orderinternalcode = '"&P.orderinternalcode&"' AND
    > PR.orderproductcode = '"&P.orderproductcode&"' " + _

    " FROM tborders P " + _
     " INNER JOIN tborders PR ON PR.orderkind = 'fc' AND PR.orderinternalcode = P.orderinternalcode AND PR.orderproductcode = P.orderproductcode " + _


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    • Marcado como respuesta jorge1.6.4.4 miércoles, 28 de septiembre de 2016 18:26
    miércoles, 28 de septiembre de 2016 12:41
  • jorge1.6.4.4,

    Dos observaciones:

    Primero, para contener una cadena en mas de una linea debes de usar el guión bajo y luego el caracter '&' de concatenación, el caracter '+' creo que no aplica para estos casos.

    ssqltb1 = "SELECT P.ordernumber, P.orderdate, " _
        & "FROM tborders P " _
        & "INNER JOIN tborders PR" 

    Segundo, el error 'se requiere un objeto' generalmente se obtiene cuando el calificador de un objeto no es correcto, noto que haces referencia a una columna con el nombre del alias mas el nombre de columna y eso no es correcto:

    Do While NOT tb1.EOF
            Response.write "<br>El " & tb1("ordernumber") & " de fecha: " & tb1("orderdate")
            Response.Write " Fue comprado al proveedor: " & tb1("ordercussupcode") & " En la fecha: " & tb1("orderdate")
            tb1.MoveNext
    Loop


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta jorge1.6.4.4 miércoles, 28 de septiembre de 2016 18:26
    miércoles, 28 de septiembre de 2016 13:53