0
Dans SQL Server 2008, la requête suivante fonctionne très bien:Erreur de liaison SQL
WITH T AS (
SELECT node.value('fn:local-name(.)', 'varchar(50)') AS Name, node.value('(.)', 'float') AS Value
FROM @xml.nodes('data//*') AS x(node)
)
SELECT @OutOfBounds = Count(T.Name)
FROM T INNER JOIN [int].RankItems ON [int].RankItems.RankItem = T.Name
WHERE (T.Value < [int].RankItems.[Min] OR T.Value > [int].RankItems.[Max])
OPTION (OPTIMIZE FOR (@XML UNKNOWN))
Cependant, je voulais écrire comme suit:
WITH T AS (
SELECT node.value('fn:local-name(.)', 'varchar(50)') AS Name, node.value('(.)', 'float') AS Value
FROM @xml.nodes('data//*') AS x(node)
)
SELECT @OutOfBounds = Count(T.Name)
FROM T INNER JOIN [int].RankItems T2 ON T2.RankItem = T.Name
WHERE (T.Value < T2.[Min] OR T.Value > T2.[Max])
OPTION (OPTIMIZE FOR (@XML UNKNOWN))
Cela me donne un "ne pouvait pas lier" erreur sur T2. Je ne peux pas voir pourquoi.
Wow, si simple une omission dans une requête autrement non simples! Merci @RLT. – IamIC