自定义挂钩无效时,请按钮单击按钮
我很难找到此SQL语句出了问题。我正在使用pyodbc
最新和odbc驱动程序17 for sql Server
,这是语句:
insert_sql = """MERGE VehicleDistanceReport trg
USING (VALUES (?, ?, ?))
src(
Distance,
Ic_Siparis_No,
Vehicle_Hour
)
ON trg.Ic_Siparis_No = src.Ic_Siparis_No
WHEN MATCHED THEN
UPDATE SET
Distance = src.Distance,
Ic_Siparis_No = src.Ic_Siparis_No,
Vehicle_Hour = src.Vehicle_Hour
WHERE trg.NodeGroup LIKE N'%AĞIR%' OR trg.NodeGroup LIKE N'%MAKİNE%'
WHEN NOT MATCHED THEN
INSERT(
id,
Record_No,
Device_No,
License_Plate,
Inı
Distance,
Ic_Siparis_No,
Vehicle_Hour
)
VALUES(
src.Distance,
src.Ic_Siparis_No,
src.Vehicle_Hour
);"""
它说其中 statement附近有一个语法错误但是查询似乎在SQL Server中工作。
I'm having trouble on finding what is wrong with this SQL statement. I'm using pyodbc
latest and ODBC Driver 17 for SQL Server
, here is the statement:
insert_sql = """MERGE VehicleDistanceReport trg
USING (VALUES (?, ?, ?))
src(
Distance,
Ic_Siparis_No,
Vehicle_Hour
)
ON trg.Ic_Siparis_No = src.Ic_Siparis_No
WHEN MATCHED THEN
UPDATE SET
Distance = src.Distance,
Ic_Siparis_No = src.Ic_Siparis_No,
Vehicle_Hour = src.Vehicle_Hour
WHERE trg.NodeGroup LIKE N'%AĞIR%' OR trg.NodeGroup LIKE N'%MAKİNE%'
WHEN NOT MATCHED THEN
INSERT(
id,
Record_No,
Device_No,
License_Plate,
Inı
Distance,
Ic_Siparis_No,
Vehicle_Hour
)
VALUES(
src.Distance,
src.Ic_Siparis_No,
src.Vehicle_Hour
);"""
It says there is a syntax error near WHERE
statement but the query seems to work in SQL server.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当匹配子句是错误的时,您的
是
,其中应该是条件。同样,No Pooint更新IC_SIPARIS_NO
,因为无论如何是连接条件,都不会试图将此条件放在上的条款上,这会导致结果不正确。
Your
WHEN MATCHED
clause is wrong, as theWHERE
should be a condition. Also no pooint updatingIc_Siparis_No
as it's the joining condition anywayDon't be tempted to place this condition in the
ON
clause, it will cause incorrect results.