2010-11-23 81 views
2

我已經聲明瞭一個表變量'@t',並且已經正確執行了'INSERT-INTO-SELECT'。 當我試圖查詢表變量與一些額外的計算每組行編號,我得到的錯誤要麼「必須聲明變量」直接使用'@ t'或'無效的對象名稱'使用別名'@ T」。請提供建議。在T-SQL中,如何引用子查詢中的表變量?

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 

回答

5

用途:

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 
+1

的一點是,我們必須聲明的子查詢表裏面的變量的別名 – 2010-11-23 03:40:16

相關問題