2017-05-29 1124 views
0

能不能帮我,找到我的查询中的错误,我正在解决这个错误小时,在此先感谢SQL查询,不正确的语法附近的“关键字”

sqlquery = "SELECT dbo.trans_queue.que_no, dbo.trans_step.step_remarks," _ 
       & " dbo.office.office_name, dbo.transaction.trans_name," _ 
       & " dbo.trans_queue.date_arrive, dbo.trans_queue.time_arrive" _ 
       & " FROM dbo.trans_queue" _ 
       & " INNER JOIN dbo.trans_step ON dbo.trans_queue.trans_step_Id = dbo.trans_step.trans_step_Id" _ 
       & " INNER JOIN dbo.office ON dbo.trans_queue.office_Id = dbo.office.office_Id" _ 
       & " INNER JOIN dbo.transaction ON dbo.trans_queue.trans_Id = dbo.transaction.trans_Id" _ 
       & " WHERE dbo.office.office_Id = '" & Now_Office_ID & "'" _ 
       & " ORDER BY dbo.trans_queue.time_arrive AND dbo.trans_queue.date_arrive" 

错误总是告诉我 “接近'transaction'的语法不正确

+4

(1)使用参数化的查询。 (2)显示查询字符串的样子,而不是用于生成字符串的代码。 95%的时间,查看查询本身使问题变得明显。和(3)用你正在使用的数据库标记。 –

+0

谢谢你的提醒,先生@GordonLinoff – gunZ333

+0

是这样,你**使用哪个DBMS **? –

回答

3

最可能的问题来自于您的表名TRANSACTION是Transact SQL中的保留字。用方括号内的字查询替换交易的所有事件:

sqlquery = "SELECT dbo.trans_queue.que_no, dbo.trans_step.step_remarks," _ 
      & " dbo.office.office_name, dbo.[transaction].trans_name," _ 
      & " dbo.trans_queue.date_arrive, dbo.trans_queue.time_arrive" _ 
      & " FROM dbo.trans_queue" _ 
      & " INNER JOIN dbo.trans_step ON dbo.trans_queue.trans_step_Id = dbo.trans_step.trans_step_Id" _ 
      & " INNER JOIN dbo.office ON dbo.trans_queue.office_Id = dbo.office.office_Id" _ 
      & " INNER JOIN dbo.[transaction] ON dbo.trans_queue.trans_Id = dbo.[transaction].trans_Id" _ 
      & " WHERE dbo.office.office_Id = '" & Now_Office_ID & "'" _ 
      & " ORDER BY dbo.trans_queue.time_arrive AND dbo.trans_queue.date_arrive" 
+0

谢谢主席先生@xtoik它有很大的帮助 – gunZ333

0

你的错误应该是使用researved“交易”一词你不指定数据库,Microsoft SQL Server中,你应该使用:

dbo.[transaction].trans_name, 
相关问题