Sql server TSQL上的DB2错误

Sql server TSQL上的DB2错误,sql-server,db2,linked-server,Sql Server,Db2,Linked Server,我收到以下错误:[OLE/DB提供程序返回消息:[IBM][CLI驱动程序][DB2/linuxx8664]SQL0206N LS_计划日期在使用的上下文中无效。SQLSTATE=42703 OLE DB错误跟踪[OLE/DB提供程序“MSDASQL”IColumnsInfo:GetColumnsInfo返回0x80004005: Msg7339,1级,状态1,第83行 OLE DB提供程序“MSDASQL”报告了一个错误 我收到的此错误代码如下所示: IF OBJECT_ID('tempdb.

我收到以下错误:[OLE/DB提供程序返回消息:[IBM][CLI驱动程序][DB2/linuxx8664]SQL0206N LS_计划日期在使用的上下文中无效。SQLSTATE=42703 OLE DB错误跟踪[OLE/DB提供程序“MSDASQL”IColumnsInfo:GetColumnsInfo返回0x80004005: Msg7339,1级,状态1,第83行 OLE DB提供程序“MSDASQL”报告了一个错误

我收到的此错误代码如下所示:

IF OBJECT_ID('tempdb..#Temp1') is not null begin drop table #Temp1

select * 

into #Temp1
from openquery(LnkServer,

'
Select 
X.loan_number, 
X.ls_code,
x.ls_actual_completion_date
x.ls_scheduled_completion_date

,max(Case WHEN (ls_code = ''924'' and ls_scheduled_completion_date <> (''01/01/1900'')
             then ls_scheduled_completion_code
               else NULL End) as Ls_scheduled_completion_date

,max(Case WHEN (ls_code = ''926'' and ls_scheduled_completion_date <> (''01/01/1900'')
             then ls_scheduled_completion_code
               else NULL End) as Ls_scheduled_completion_date

,max(Case WHEN (ls_code = ''927'' and ls_scheduled_completion_date <> (''01/01/1900'')
             then ls_scheduled_completion_code
               else NULL End) as Ls_scheduled_completion_date

,max(Case WHEN (ls_code = ''928'' and ls_scheduled_completion_date <> (''01/01/1900'')
             then ls_scheduled_completion_code
               else NULL End) as Ls_scheduled_completion_date

from master x
     inner join(select loan_number, MAX(ls_scheduled_completion_date) as COMPL_DATE
                MAX(ls_actual_completion_date) as APPROVAL_DATE

     Where LS_code in (''924'', ''926'', ''927'', ''928'', ''D08'', ''H38'', ''H79'', ''H42'',
                       ''M40'', ''M29'', ''M10'', ''M40'', ''P31'', ''P49'', ''S17'')

      Group by loan_number order by loan_number) y
      on x.loan_number = y.loan_number
         and x.ls_scheduled_date = y.Compl_date
         and x.ls_actual_completion_date = y.approval_date
      Group by x.loan_number, x.ls_actual_completion_date, ls_scheduled_date

for fetch only with ur')
你是说预定完工日期吗

查询中似乎没有LS_SCHEDULED_DATE,除了on和groupby子句中我假设发生错误的地方

从IBM自己的publib:

对于SELECT或DELETE语句,指定的列不是该语句中FROM子句中标识的任何表或视图的列

验证SQL语句中是否正确指定了名称。对于SELECT语句,请确保在FROM子句中命名了所有必需的表


要格式化代码,请在编辑器中选择它,然后按Control-K.No probs。我喜欢DB2,但它的错误消息似乎具有相当低的信噪比:-我也在努力让这段代码为每个贷款编写一行代码/日期。例如:贷款编号0000034,贷款代码924,贷款实际完成日期2008-05-07 00:00:00,贷款计划计划完成日期2008-09-27 00:00:00,步骤924完成日期2008-05-19 00:00:00,步骤926完成日期2008-05-19 00:00:00,步骤927完成日期2008-05-29 00:00,步骤928完成日期空,实际完成日期空批准日期2008-06-01 00:00:00当然,列名与相应列下的日期交叉。Paxdiablo,我有e检查了代码,没有看到拼写错误的名称。所需的表在from子句中..@JMS49,这听起来像是一个与SQL有关的不同问题,而不是拼写错误,并且在一个小的未格式化注释框中很难沟通。至少我很难理解它。我建议为它再问一个问题o它得到的响应比我看到的要好。我发现文件主控符在内部join语句中拼写错误。