Выберите сумму из одной таблицы по - PullRequest
0 голосов
/ 26 мая 2020

Я хочу выбрать сумму по CustomerID, Category, Store и City.

Пожалуйста, исправьте этот запрос, если можете?

var query = db.Amounts.Where(x => x.CustomerID == Convert.ToInt32(lkpCustomer.EditValue) &&
                  x.CatagoryID == Convert.ToInt32(lkp_Catagory.EditValue) && x.StoresID == Convert.ToInt32(lkp_from.EditValue) &&
                  x.CityID == Convert.ToInt32(lkp_to.EditValue)).Select(x => x.Amount1).ToList();
RateSpinEdit.EditValue = query;

описание:

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

спасибо всем за вашу помощь. Я использую этот код, и он работает успешно:

using (var db = new dbDataContext ()) {var datasource = db.amounts;

            var query = from amount in datasource
                        where amount.CatagoryID == Convert.ToInt32(lkp_Catagory.EditValue)&&
                        amount.CustomerID == Convert.ToInt32(lkpCustomer.EditValue)&&
                        amount.StoresID == Convert.ToInt32(lkp_from.EditValue)&&
                        amount.CityID == Convert.ToInt32(lkp_to.EditValue)
                        select amount;
            RateSpinEdit.EditValue = query.Select(x => x.Amount1).FirstOrDefault();
0 голосов
/ 27 мая 2020

Если я не ошибаюсь, вам нужно сгруппировать значение столбца amount в соответствии с полями ниже:

CustomerID, Category, Store и City.

В этом состоянии приведенный ниже код может быть ответом на ваш вопрос:

var query = (from p in Amounts
         group p by new { p.CustomerID, p.CatagoryID, p.StoresID, p.CityID}
         into grp
         where 
         (
            p => p.CustomerID    == Convert.ToInt32(lkpCustomer.EditValue) &&
                 p.CatagoryID    == Convert.ToInt32(lkp_Catagory.EditValue) &&
                 p.StoresID      == Convert.ToInt32(lkp_from.EditValue) &&
                 p.CityID        == Convert.ToInt32(lkp_to.EditValue)            
         )
         select new 
         {
                grp.key.ID,
                grp.key.CategoryID,
                grp.key.CustomerID,
                grp.key.StoresID,
                grp.key.CityID,
                SumOfAmount = grp.Sum(p => p.Amounts)            
         }).ToList();
...