我可以通过 Python 连接 SQL Server 数据库并执行基本查询,但是一旦我开始INNER JOIN
向查询中添加 s 等,Python 就会出错:
关键字“Order”附近的语法不正确。DB-Lib 错误消息 20018,严重性 15:\n一般 SQL Server 错误: 检查来自 SQL Server 的消息\n
我将把代码放在下面,但我认为一定有一些 Python 格式,我弄错了,因为查询使用其他 SQL 工具工作。
在我的搜索中,我发现在 Python 中使用 T-SQL 时INNER JOIN
应该ON
缩进该部分。由于我有这么多INNER JOIN
s,也许我缩进不正确?我还看到,当你在Python中分解SQL时,你必须在每行末尾添加一个\。
任何帮助或链接表示赞赏!
import pymssql
conn = pymssql.connect(server= 'xxx',
user= 'xxx',
password= 'xxx',
database= 'xxx'
)
cursor = conn.cursor()
sql = "SELECT PatientInfo.MRN, AccountPersonalInfo.LastName, Visit.VisitNumber, PatientInfo.FirstName, PatientInfo.LastName, AccountPersonalInfo.FirstName, Report.LastSignDate, Order.ProcedureDescList, Visit.Facility, Order.CompleteDate, Order.FillerOrderNumber \
FROM ((Comm4.dbo.Order Order INNER JOIN Comm4.dbo.Report Report \
ON Order.ReportID=Report.ReportID) \
INNER JOIN (Comm4.dbo.PatientInfo PatientInfo INNER JOIN Comm4.dbo.Visit Visit \
ON PatientInfo.PatientID=Visit.PatientID) \
ON Order.VisitID=Visit.VisitID) INNER JOIN Comm4.dbo.AccountPersonalInfo AccountPersonalInfo \
ON Report.SignerAcctID=AccountPersonalInfo.AccountID \
WHERE PatientInfo.MRN<>'TEMPORARY' AND Report.LastSignDate>={ts '2020-09-01 00:00:00'} AND Report.LastSignDate<{ts '2020-10-01 00:00:00'}) \
ORDER BY Report.LastSignDate, PatientInfo.MRN"
cursor.execute(sql)
row = cursor.fetchone()
conn.close()
print(row)
鸿蒙传说
HUH函数
相关分类