у меня есть некая выборка всех заказов из DataSet (порезал не из соображений секретности а просто текст огромен и жутковат) var query = from... join... join... join... where... orderby... select new { YearZakaz = ... // год заказа MonthZakaz = ... // месяц заказа ZakazID = ... // уникальный номер заказа TovarovVZakaze = ... // количество товаров в заказе SumZakaza = ... // сумма заказа }; Затем я группирую количество проданных товаров и сумму заказов по месяцам и годам: var queryPG = query.GroupBy(cm => new { cm.YearZakaz, cm.MonthZakaz }, (key, group) => new { Year = key.cYearZakaz, Month = key.cMonthZakaz, Tovarov = group.Sum(cm => cm.TovarovVZakaze), Summa = group.Sum(cm => cm.SumZakaza) }).OrderBy(cm => cm.Year).ThenBy(cm => cm.Month); Все сказочно работает. Но как мне в эту группировку добавить подсчет количеств заказов (по ZakazID)по месяцам? весь мосг себе сломал может устал просто, конец недели... Спасибо за подсказки!
а при чем тут c#? если у вас проблема с sql, то так и пишите покажите пример таблицы и что хотите получить на выходе
var queryPG = query.GroupBy(cm => new { cm.YearZakaz, cm.MonthZakaz }, (key, group) => new { Year = key.cYearZakaz, Month = key.cMonthZakaz, Tovarov = group.Sum(cm => cm.TovarovVZakaze), Summa = group.Sum(cm => cm.SumZakaza), Count = group.Count() }).OrderBy(cm => cm.Year).ThenBy(cm => cm.Month);
я дятел ((( я не правильно задал вопрос. прошу у всех прощения разумеется одна строка в query это не один заказ. это было бы слишком просто. одна строка - соответствует одному виду товара, т.е. одному заказу как правило соответствует несколько строк, во вложении - реальный скриншот c отладчика. соответственно это должно быть как то Count = group.Distinct(ZakazID).Count() - но как это поженить с моей группировкой = печаль ((( еще раз прошу прощения за некорректно заданный вопрос.
3aвулoн, тогда у вас и в Tovarov = group.Sum(cm => cm.TovarovVZakaze) множатся данные при суммировании, это точно так надо? можно попробовать добавить еще группировку по ZakazId а вообще напишите человеческим языком - какая стоит задача? и структуры таблиц с примерами данных
qwertEHOK, как раз таки когда решить задачу, мысля множествами, проще - то линк помогает, ну и данные в памяти компа