Удалить дубликаты, пока значение суммы, равной моей текстовое поле значение в C#, Windows форм, ASP.NET
Привет всем,
я пытаюсь удалить дубликат до тех пор, пока значение суммы не будет равно значению текстового поля
Имя Моей Таблицы
A_table
ID S_Number Amount 1 55 100 2 55 100 3 66 100 4 66 100 5 77 100 6 88 100 7 88 100 8 99 100 9 44 100 10 88 100
используя этот quary я могу удалить все дубликаты значений но мне нужно
текстовое поле равно значению суммы таблицы..
Пример: если значение текстового поля равно 900, то в таблице данных должно быть delete 100 amout только сумма 1000 amount для удаления дубликатов ...
Что я уже пробовал:
Я написал запрос Linq
DataClasses1DataContext DB = new DataClasses1DataContext(); var f1 = (from k in DB.A_table select k.Amount).Sum(); ***// Here i have to write something for "f1" sum value equal to textbox value ***// run "f2" quary untill var f2 = DB.A_table .GroupBy(g => g.S_Number) .Where(s => s.Count() > 1) .Select(R => R.First()); foreach (var l in f2) { DB.A_table.DeleteOnSubmit(l); } DB.SubmitChanges();
Richard Deeming
Если сумма должна быть меньше или равна значению, то просто выполните цикл по строкам, вычисляя совокупную сумму. Как только эта сумма превысит требуемое значение, удалите текущую строку и все последующие строки.
Если сумма должна быть точно равна значению, то это гораздо более сложная проблема. Возможно, даже не существует решения для конкретного набора данных. Например: взяв ваш пример данных из вопроса, Что произойдет, если значение текстового поля равно 942
? Никакая комбинация удалений не сделает сумму строк равной этому значению.