Linq左连接
项目中使用的左连接的例子:
var query = from store in dtStore.AsEnumerable()
join sales in dtSales.AsEnumerable() on store.Field<string>("StoreCode") equals sales.Field<string>("StoreCode") into storeSales
from sales in storeSales.DefaultIfEmpty()
join bond in dtBond.AsEnumerable() on store.Field<string>("StoreCode") equals bond.Field<string>("DeptID") into storeBonds
from bond in storeBonds.DefaultIfEmpty()
join social in dtSocial.AsEnumerable() on store.Field<string>("StoreCode") equals social.Field<string>("DeptID") into storeSocials
from social in storeSocials.DefaultIfEmpty()
let A07 = bond == null ? 0 : bond.Field<decimal>("A07")
let A08 = bond == null ? 0 : bond.Field<decimal>("A08")
let A22 = bond == null ? 0 : bond.Field<decimal>("A22")
let A03 = bond == null ? 0 : bond.Field<decimal>("A03")
let A09 = bond == null ? 0 : bond.Field<decimal>("A09")
let A20 = bond == null ? 0 : bond.Field<decimal>("A20")
let A14 = bond == null ? 0 : bond.Field<decimal>("A14")
let SaleAmount = sales == null ? 0 : sales.Field<decimal>("Amount")
let socialAmount = social == null ? 0 : social.Field<decimal>("SocialSecurityAmount")
select new
{
StoreCode = store.Field<string>("StoreCode"),
StoreName = store.Field<string>("StoreName"),
DictionaryValue = store.Field<string>("DictionaryValue"),
Amount = SaleAmount,
BasicSalary = A90,
Bonud1 = A07,
Bound2 = A08}
posted on 2017-11-16 18:00 wendy wang 阅读(617) 评论(0) 编辑 收藏 举报