从数据库中选择最接近的前一年现金

Selecting Closest Prior Year Cash From DB

我正在尝试 select 最近一年的现金(十进制)金额(db 列称为年份,但属于 DateTime 类型)。这是给我刚刚输入的那一年的现金。对修复我的查询有什么建议吗?

ViewBag.priorYearCash =  ((from r in db.FinancialPeriods  
                           where r.Year.Year < financialPeriod.Year.Year
                           orderby financialPeriod.Year.Year descending
                           select financialPeriod.Cash)
                          .First()).ToString();

感谢您的帮助,

鲁本

您的查询正在返回您用来过滤查询的 financialPeriod 对象的 Cash 值。应该是

ViewBag.priorYearCash =  ((from r in db.FinancialPeriods  
                           where r.Year.Year < financialPeriod.Year.Year
                           orderby r.Year.Year descending
                           select r.Cash)
                          .First()).ToString();

旁注:调用 .ToString() 可能不是必需的,您可能希望按实际 DateTime 属性 排序,而不是年份以确保获得最新值从上一年开始 - 即

orderby r.Year descending