2015-05-19 2 views
1

Я пытаюсь выбрать сумму (десятичную) суммы из ближайшего предыдущего года (столбец 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(); 

Спасибо за любую помощь,

Рубен

+0

Я предполагаю, что вы имеете в виду 'OrderBy r.Year.Year descending' и' выберите r.Cash' –

+0

Я не понимаю, что вы пытаетесь получить с запросом, не могли бы вы добавить больше информации – Luiso

+0

@StephenMuecke : Это сработало! Как мне отдать должное здесь за ответ? – user3371568

ответ

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 
+0

Это сработало легко! Спасибо, Стивен! – user3371568

+0

получил! Спасибо, что дали мне знать – user3371568

Смежные вопросы