var cte_company = from t in AccountDB.TblCompanies select new { CompanyID = t.CompanyID, CompanyName = t.CompanyName, CompanyNumber = t.CompanyNumber, IncorporatedDate = t.IncorporatedDate, TOTAL_YEARS = new DateTime((DateTime.Now - t.IncorporatedDate).Ticks).Year - 1 }; var TaxReturnDate = AccountDB.TblTaxes.MaxBy(x => x.HeTaxReturnDate).select(x => x.HeTaxReturnDate).First(); var result = from tax in AccountDB.TblTaxes join cte in cte_company on cte.CompanyID equals tax.CompanyID select new { cte.CompanyID, cte.CompanyName, cte.CompanyNumber, cte.IncorporatedDate, cte.TOTAL_YEARS, TaxDate =(DateTime) (cte.TOTAL_YEARS > 1 ? TaxReturnDate.AddMonths(9) : cte.TOTAL_YEARS <= 1 ? cte.IncorporatedDate.AddMonths(21)) };