JOINTURE INTERNE avec Fonction Table ne fonctionne pas
J'ai une fonction à valeur de table qui retourne une table. Lorsque j'essaie de JOIN
de la fonction table avec une autre table je n'obtenez pas de résultats, mais quand je copie le résultat de la fonction dans un tableau et faire de même rejoindre, puis-je obtenir les résultats escomptés.
La requête ressemble à quelque chose comme ceci:
Select *
From myTable
INNER JOIN fn_function(@parm1, @param2)
ON ....
Tous, j'ai environ 4 ces requêtes et chacun a légèrement différentes, mais toutes les fonctions produisent le même tableau, mais différents de données. Pour certains de ces requêtes, l' INNER JOIN
fonctionne, mais pour d'autres, il ne le fait pas.
Tout en suggérant pourquoi cela se produit?
- Pourrait être quelque chose lié à la non-correspondance des types de données. Pouvez-vous nous montrer certains de code réel?
- Des exemples de données et sql violon sera utile.
- donner l'exacte requête à l'aide. Il devrait fonctionner. En général, je donne un alias de la fonction comme
INNER JOIN fn_function(@param1, @param2) fn ON....
Exacte de la requête aidera à trouver la solution.
Vous devez vous connecter pour publier un commentaire.
Avec la fonction à valeur de table vous utilisez généralement
Cross Apply
.Si nous avons fait quelques hypothèses que les params de fonctions à valeur de table ne sont pas dépendants de myTable colonnes dynamiquement cela fonctionne.
mais si les paramètres dépendent de myTable il ne fonctionnera pas
myTable
.Votre "À la" clause de la jointure est probablement incorrect. Peut-être une petite faute de frappe comme
au lieu de
Je pense que cela devrait fonctionner
En fonction à valeur de table à la table de retour doit avoir TypeId de sorte que rejoindre travaille sur cette clause