我有两个具有1米连接的表,并且无法正确将以下SQL转换为CAML / SPQUERY 我想要表中的每一个值,无论何种&表b分为两组,所以我可以计算每个组。

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
.

我一直在试图遵循 http://msdn.microsoft.com/en-us/library/ee539975.aspx 加入表格 - >项目ViewFields->获取投影列,但没有成功

有帮助吗?

解决方案

要求我不认为根据CAML查询完全是一个非常好的选择。CAML查询不支持COUNT()直接支持COUNT(),因此我建议的是加入TABLEA和桌面 tableb.groupid= tablea.id和获取整个数据,当然您可以修剪返回的列数,这将使查询更快,将SplistItems转换为DataTable并执行与Linq to DataTable的最喜欢/不喜欢计数,这将是更轻松。您也可以将2个列表获取为DataTable并执行所有内容,包括加入Linq,但您拥有的数据量不是明智的选择,或者根本不使用CAML,尝试使用 linq to sharepoint

许可以下: CC-BY-SA归因
scroll top