Sql 林克;如何在多个条件下执行左外联接?
我试着模仿:Sql 林克;如何在多个条件下执行左外联接?,sql,linq,left-join,Sql,Linq,Left Join,我试着模仿: DB1 AS A LEFT OUTER JOIN DB2 AS B ON A.[Currency Code] = B.[Currency Code] AND A.[Document Date] >= B.[Starting Date] AND A.[Document Date] <= B.[Ending Date] DB1作为左外连接 DB2 AS B A.[货币代码]=B.[货币代码] 和A[文件日期]>=B[开始日期] 和A.[文档日期]=货币。开始日期 &
DB1 AS A LEFT OUTER JOIN
DB2 AS B
ON A.[Currency Code] = B.[Currency Code]
AND A.[Document Date] >= B.[Starting Date]
AND A.[Document Date] <= B.[Ending Date]
DB1作为左外连接
DB2 AS B
A.[货币代码]=B.[货币代码]
和A[文件日期]>=B[开始日期]
和A.[文档日期]=货币。开始日期
&&ledgers.DocumentDate看来答案就是我想要的
from ledgers in ledgerEntries
join currency in currencyExchange
on ledgers.CurrencyCode equals currency.CurrencyCode
into c
from currencies in c.Where(currency => currency.StartingDate <= ledgers.DocumentDate
&& currency.EndingDate <= ledgers.DocumentDate).DefaultIfEmpty()
来自分类帐中的分类帐
兑换货币
在分类账上.CurrencyCode等于currency.CurrencyCode
变成c
来自c.Where中的货币(货币=>currency.StartingDate
from ledgers in ledgerEntries
join currency in currencyExchange
on ledgers.CurrencyCode equals currency.CurrencyCode
into c
from currencies in c.Where(currency => currency.StartingDate <= ledgers.DocumentDate
&& currency.EndingDate <= ledgers.DocumentDate).DefaultIfEmpty()
from ledgers in ledgerEntries
from currencies in currencyExchange.Where(
currency => currency.CurrencyCode == ledgers.CurrencyCode
&& currency.StartingDate <= ledgers.DocumentDate
&& currency.EndingDate <= ledgers.DocumentDate).DefaultIfEmpty()