【发布时间】:2021-12-07 17:20:07
【问题描述】:
所以我是 Python 和 sql 的新手。 我正在使用 pandas 和 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 是一个包含 3 列的 Dataframe。
po_number company cyt_part_number
0 111111 TEST abc12345
这是我尝试执行代码时收到的错误:
('07002', '[07002] [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误 (0) (SQLExecDirectW)')
我想知道是否有人可以给我一些关于它失败的原因以及关于如何让它工作的有用提示。
如果需要,我可以提供更多数据。 提前致谢。
【问题讨论】:
-
由于这里没有发生聚合(通常会将这种类型的错误与“COUNT”相关的错误相关联),因此您可能没有提供适当数量的参数,因为您有占位符在您的 WHERE 子句中。可以分享一下参数列表
dfRaw的相关细节吗? -
我添加了 dfRaw Dataframe 的样子。
-
您正在向 sql 中发送一个数据帧,而不是一个值。使用 dfRaw['po_number'][0] dfRaw['cyt_part_number'][0] 代替数据和 dfRaw
-
data是您的联系人吗? -
是的,data就是连接名。
标签: python sql-server pandas pyodbc