Jointure externe gauche dans SharePoint 2010
-
10-12-2019 - |
Question
J'ai 2 listes dans SharePoint 2010.La première liste E répertorie tous les emplacements.
Dans la deuxième liste H, j'utilise la première liste E pour rechercher l'emplacement.Chaque mois, les utilisateurs saisissent des informations dans la liste H.
La liste E a (Emplacement)
La liste H contient (emplacements (recherche dans la liste E), mois, inventaire, nom)
J'ai besoin de savoir quel emplacement N'A PAS fourni d'inventaire ce mois-ci.
J'ai utilisé .net avant et en SQL, l'instruction que j'ai utilisée était
SELECT E.Canteen_Location
FROM dbo.v_Location AS E LEFT OUTER JOIN
dbo.tblInventory AS H ON H.Canteen = E.CanteenNum And Month=@Month
WHERE (H.Canteen IS NULL)
Nous sommes maintenant passés à SharePoint 2010 et je ne sais pas si cela est possible.Quelqu'un peut-il m'aider avec ça?
Larisa
La solution
Oui, vous pouvez, dans votre Joins
nœud ajouter une jointure avec type="LEFT"
, quelque chose comme ça:
<Join Type="LEFT" ListAlias="h">
<Eq>
<FieldRef Name="Canteen" RefType="Id" />
<FieldRef List="v_location" Name="CanteenNum" />
</Eq>
</Join>
Vous voudrez peut-être également envisager d'utiliser LINQ vers SharePoint avec SPMétal car cela fournira une syntaxe plus simple pour interroger SharePoint.
La syntaxe avec LINQ ressemblerait à ceci :
var query = from e in db.v_location
join h in db.tblInventory
on h.Canteen equals e.CanteenNum into sh
from x in sh.DefaultIfEmpty()
where h.Canteen == null
select new {
e.Canteen_Location
};
Autres conseils
Larisa,
La requête CAML autorise les jointures GAUCHE en utilisant <Join>
étiqueter...Voir Jointures et projections article sur MSDN...
Dans Rejoindre, il y a un Type
attribut dont la valeur peut être soit INNER
ou LEFT
, voir REJOINDRE...
Si vous n'arrivez pas à comprendre, je peux vous donner votre requête CAML complète...Fais-moi savoir!