2010-11-23 3 views
2

J'ai déclaré une variable de table '@t' et j'ai correctement exécuté 'INSERT-INTO-SELECT'. Lorsque j'essayais d'interroger la variable table avec un calcul supplémentaire pour la numérotation des lignes par groupe, j'ai une erreur "Doit déclarer la variable" lorsque j'utilise directement "@t" ou "nom d'objet invalide" en utilisant l'alias '@ t '. S'il vous plaît veuillez conseiller.Dans T-SQL, comment référencer une variable de table dans la sous-requête?

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 

Répondre

5

Utilisation:

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

Le point est, nous devons déclarer l'alias de la variable de table à l'intérieur du sous-requête –

Questions connexes