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