Question

J'ai deux tables avec une connexion de 1 m et n'ont pas été en mesure de convertir correctement le SQL suivant en une caml / spquery Je veux chaque valeur dans le tableau A une fois quel que soit le tableau B divisé en deux groupes afin que je puisse compter chaque groupe.

SELECT ID,Title,Count(Fav) as Favorite,Count(nfav) as Dislike FROM TableA JOIN (SELECT * FROM TableB WHERE boolValField = 1) Fav on Fav.GroupId = TableA.ID  JOIN (SELECT * FROM TableB WHERE boolValField = 0) nfav on nfav.GroupId = TableA.ID

J'ai essayé de suivre http://msdn.microsoft.com/en-us/library/ee539975.aspx Pour rejoindre les tableaux -> Viewfieldfields-> Obtenez des colonnes projetées mais sans succès

Était-ce utile?

La solution

Avec votre condition, je ne pense pas que la requête CAML est entièrement un très bon choix.La requête CAML ne prend pas en charge le nombre () directement, donc ce que je suggère est de rejoindre Tablea et Tableb sur TABLEB.GROUPID= Tablea.Id et approvisionnement des données complètes, vous pouvez bien sûr réduire le nombre de colonnes renvoyées, ce qui permettra la requête plus rapide, convertissez des scissades en données et effectuera le comptage favori / aversion avec Linq à DataTable, qui seraPlus facile.Vous pouvez également récupérer 2 listes comme datates et tout effectuer, y compris la jonction avec Linq, mais la quantité de données que vous ne serez pas un choix judicieux, vous n'utilisez pas du tout CAML, essayez de réaliser cela en utilisant linq à SharePoint

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top