Si près de faire un grand proc stocké pour travailler, juste ce dernier problème avec CROSS APPLY. Pouvez-vous aider?

L'instruction sql croisée ci-dessous est la seule partie d'un process stocké que je ne peux pas utiliser. L'erreur indique qu'il y a une syntaxe incorrecte près du mot-key 'ON'

Quelqu'un peut-il voir le problème?

L'instruction select fonctionne bien si cela aide du tout.

CROSS APPLY ( SELECT tbrm_Votes.ArticleID, AVG(tbrm_Votes.Truth), AVG(tbrm_Votes.Relevance) FROM tbrm_Votes GROUP BY tbrm_Votes.ArticleID ) AS Votes(ArticleID,Truth,Relevance) ON tbrm_Article.ArticleID = tbrm_Votes.ArticleID 

Une application CROSS est similaire à un CROSS JOIN en ce qu'il s'agit d'une jointure de produit cartésien montrant toutes les combinaisons de toutes les lignes des deux côtés.

Par conséquent, il n'y a pas de "ON" partie d'une application croisée.

Qu'est-ce que vous pourriez être après est d'exécuter une clause WHERE dans votre sous-requête? Peut-être quelque chose comme ça? Cependant, dans ce cas, cela annule à peu près le GROUP BY, donc vous aurez probablement besoin de plus d'informations sur votre requête / tables pour vous aider.

 CROSS APPLY ( SELECT tbrm_Votes.ArticleID, AVG(tbrm_Votes.Truth), AVG(tbrm_Votes.Relevance) FROM tbrm_Votes WHERE tbrm_Article.ArticleID = tbrm_Votes.ArticleID GROUP BY tbrm_Votes.ArticleID ) AS Votes(ArticleID,Truth,Relevance) 

cross apply est une jointure complète et n'a pas besoin de l'instruction ON. Il multiplie la table de gauche par la table Rhs