【问题标题】:Selecting Closest Prior Year Cash From DB从 DB 中选择最接近的上一年现金
【发布时间】:2015-07-31 21:57:14
【问题描述】:

我正在尝试从最接近的上一年(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();

感谢您的帮助,

鲁本

【问题讨论】:

  • 我假设你的意思是 orderby r.Year.Year descending 和 select r.Cash
  • 我不明白您想通过查询获得什么,请您补充更多信息
  • @StephenMuecke :成功了!我如何在此处为您提供答案?

标签: c# asp.net-mvc linq linq-to-sql


【解决方案1】:

您的查询返回您用来过滤查询的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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2012-07-16
    相关资源
    最近更新 更多