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

本文关键字:上一年 现金 最接近 数据库 选择 | 更新日期: 2023-09-27 17:50:08

我试图从最近的上一年选择现金(十进制)金额(db列称为year,但属于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