【问题标题】:The multi-part identifier "genLedger.AccountLink" could not be bound. (4104) (SQLExecDirectW)无法绑定多部分标识符“genLedger.AccountLink”。 (4104) (SQLExecDirectW)
【发布时间】:2021-11-01 00:52:50
【问题描述】:

我收到以下 SQL 查询的以下错误,我很确定它与给予 PostGl 的别名有关。就是不知道怎么改。

查询:

all =  'SELECT Master_Sub_Account , cAccountTypeDescription , Debit , Credit FROM [Kyle].[dbo].[PostGL] AS genLedger'\
                    'Inner JOIN [Kyle].[dbo].[Accounts] '\
                    'on Accounts.AccountLink = genLedger.AccountLink '\
                    'Inner JOIN [Kyle].[dbo].[_etblGLAccountTypes] as AccountTypes '\
                    'on Accounts.iAccountType = AccountTypes.idGLAccountType'\
                    ' WHERE genLedger.AccountLink not in (161,162,163,164,165,166,167,168,122)'

错误:

无法绑定多部分标识符“genLedger.AccountLink”。 (4104)

【问题讨论】:

  • 或许:WHERE genLedger.AccountLink NOT IN (161, 162, ...)?
  • 当使用此代码时,它现在给出“无法绑定多部分标识符“PostGL.AccountLink”。(4104)”作为错误
  • 表有别名PostGLPostGL.AccountLink 应替换为 genLedger.AccountLink
  • @ReinisVerbelis 我已经编辑了上述问题。多部分标识符的错误仍然显示
  • 那么接下来就是第一行末尾没有空格了。在genLedgerInner JOIN [Kyle].[dbo].[Accounts] 之间

标签: python sql django alias


【解决方案1】:

where 子句不是有效的 sql 语法:

WHERE genLedger.AccountLink <> 161 OR genLedger.AccountLink <> 162 OR...

但您可以改用not in

WHERE genLedger.AccountLink not in (161,162,163,164,165,166,167,168,122)

【讨论】:

  • 当使用此代码时,它现在给出“无法绑定多部分标识符“PostGL.AccountLink”。(4104)”作为错误
  • @KyleStranger 你给了PostGL 表一个名为“genLedger”的别名,你必须在任何地方都使用这个别名
猜你喜欢
  • 2018-06-07
  • 1970-01-01
  • 2011-11-10
  • 2010-11-02
  • 2023-03-21
相关资源
最近更新 更多