【问题标题】:In T-SQL, how to reference to table variable in the subquery?在 T-SQL 中,如何在子查询中引用表变量?
【发布时间】:2010-11-23 03:06:30
【问题描述】:

我已经声明了一个表变量“@t”,并正确执行了“INSERT-INTO-SELECT”。 当我试图通过一些额外的计算来查询表变量以进行每组行编号时,我在直接使用“@t”时出现“必须声明变量”或在使用“@t”的别名时出现“无效的对象名称”错误'。请多多指教。

SELECT 
    *,
    (SELECT COUNT(*) FROM "LTV" "COUNTER"
     WHERE 
        "COUNTER"."Collateral_ID" = "LTV"."Collateral_ID"
        AND
        "COUNTER"."m_il_no" = "LTV"."m_il_no"
        AND
        "COUNTER"."Ref_Key" <= "LTV"."Ref_Key"
     GROUP BY "COUNTER"."Collateral_ID", "COUNTER"."m_il_no"
    ) "MIL_IDX"

FROM @t AS LTV

【问题讨论】:

    标签: sql sql-server tsql sql-server-2000 table-variable


    【解决方案1】:

    用途:

    SELECT x.*,
           y.num
      FROM @t x
      JOIN (SELECT t.collateral_id,
                   t.m_il_no,
                   COUNT(*) AS num
              FROM @t t
          GROUP BY t.collateral_id, t.m_il_no) y ON y.collateral_id = x.collateral_id
                                                AND y.m_il_no = x.m_il_no
    

    【讨论】:

    • 重点是,我们要在子查询里面声明表变量的别名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2011-10-18
    • 1970-01-01
    相关资源
    最近更新 更多