У меня есть таблица в файле EXCEL следующим образом (я могу прочитать файл Excel, это не проблема здесь) -
+------------+-------+-------------+--------+-------+
| Date | RefNo | MasterName | Value | Type |
+------------+-------+-------------+--------+-------+
| 01-01-2020 | 45 | ABC Pty Ltd | 123.45 | Sales |
| 01-01-2020 | 2 | XYZ Ltd | 134.5 | Sales |
| 01-01-2020 | 46 | ABC Pty Ltd | 765 | Sales |
| 01-01-2020 | 47 | ABC Pty Ltd | 465.4 | Sales |
| 01-01-2020 | 3 | XYZ Ltd | 468 | Sales |
| 01-01-2020 | S_1 | ABC Pty Ltd | 678 | Sales |
| 01-01-2020 | S_2 | XYZ Ltd | 68 | Sales |
+------------+-------+-------------+--------+-------+
Я использую следующий запрос, чтобы получить общую сумму по каждому Master 'для каждого дня (пример таблицы имеет только один день продаж) -
var query = data.GroupBy(row => new { row.Date, row.MasterName, row.Type })
.Select(grp => new MasterAccount
{
Date = grp.Key.Date,
Name = grp.Key.MasterName,
Type = grp.Key.Type,
Amount = grp.Sum(c => c.Value)
MinRef = // Get minimum ref no. (type: int)
MaxRef = // Get maximum ref no. (type: int)
});
Примечание: Как видите, прямо сейчас мой код не получает Столбец RefNo при выполнении 'GroupBy', потому что если я это сделаю, то для каждого RefNo будет создан новый MasterAccount. И мне это не нужно.
Я хочу получить MinRef и MaxRef для каждого мастера . Таким образом, в случае « AB C Pty Ltd » это будет 45 и 47 соответственно, игнорируя строку « S_1 ». Возможно, используйте TryParse, чтобы убедиться, что это не строка, которую нельзя преобразовать в int.
Но я не уверен, как реализовать это в этом коде.