es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando usar DataFrames de pandas con consultas SQL

Así que soy nuevo en Python y sql.
Estoy usando pandas y pyodbc.

firstQuery = pd.read_sql_query(
        '''SELECT  PORel.RelQty, PODetail.POLine, PORel.PORelNum, PORel.DueDate
           FROM *****.Erp.PODetail INNER JOIN *****.Erp.PORel ON 
           ((PODetail.Company = PORel.Company) and (PODetail.PONUM = PORel.PONum)) and 
           (PODetail.POLine = PORel.POLine)
           WHERE  PODetail.PONUM = ? and PODetail.Company= ? and PODetail.PartNum = ?''', data, dfRaw )

dfRaw es un Dataframe con 3 columnas.

  po_number company cyt_part_number
0    111111    TEST        abc12345

y este es el error que recibo cuando intento ejecutar el código:

('07002', '[07002] [Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error (0) (SQLExecDirectW)')

Me preguntaba si alguien podría darme algún consejo sobre por qué está fallando y cualquier consejo útil sobre cómo hacer que funcione.

Puedo proporcionar más datos si es necesario.
Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que hay un error de sintaxis o un campo COUNT incorrecto en la instrucción SQL. Una posible solución podría ser revisar la consulta misma y asegurarse de que todas las cláusulas SELECT, FROM, INNER JOIN y WHERE estén correctamente formateadas y no haya caracteres faltantes o adicionales.

    Otra posible solución podría ser verificar si los tipos de datos de los parámetros de entrada en la cláusula WHERE coinciden con los tipos de datos esperados en la instrucción SQL. Por ejemplo, si el número de PO es una cadena, debería estar entre comillas en la instrucción SQL.

    También podría ser útil imprimir la instrucción SQL actual generada por pandas y pyodbc para ver si hay alguna diferencia inesperada entre la declaración generada y la consulta original.

    En general, una buena manera de solucionar este problema sería descomponer el código en partes más pequeñas y probar cada parte por separado para identificar la ubicación exacta del error. Además, revisar la documentación y los foros de soporte de pandas y pyodbc podría proporcionar más información y soluciones a este problema.

Comments are closed.