Junção externa esquerda no SharePoint 2010
-
10-12-2019 - |
Pergunta
Tenho 2 listas no SharePoint 2010.A Primeira Lista E lista todos os locais.
Na segunda lista H eu uso a primeira lista E como busca por Localização.Todo mês o usuário insere informações na lista H.
A lista E tem (localização)
Lista H has(Locais (pesquisa na lista E), Mês, Inventário, Nome)
Preciso saber qual local NÃO forneceu inventário este mês.
Eu usei .net antes e no SQL a instrução que usei foi
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)
Agora mudamos para o SharePoint 2010 e não sei se isso é possível.Alguém pode me ajudar com isso?
Larissa
Solução
Sim, você pode, em seu Joins
nó adicionar uma junção com type="LEFT"
, algo assim:
<Join Type="LEFT" ListAlias="h">
<Eq>
<FieldRef Name="Canteen" RefType="Id" />
<FieldRef List="v_location" Name="CanteenNum" />
</Eq>
</Join>
Você também pode querer usar LINQ para SharePoint com SPMetal pois isso fornecerá uma sintaxe mais fácil para consultar o SharePoint.
A sintaxe com LINQ ficaria assim:
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
};
Outras dicas
Larisa,
Consulta CAML permite junções LEFT usando <Join>
marcação...Ver Junções e Projeções artigo no MSDN...
No Join existe um Type
atributo cujo valor pode ser INNER
ou LEFT
, ver JUNTAR...
Se você não consegue descobrir, posso fornecer sua consulta CAML completa...Avise!