|
выбрать записи с макс датой из ТЗ, остальные удалить | ☑ | ||
---|---|---|---|---|
0
pilot_iv
28.12.12
✎
10:29
|
Как можно,не используя временные таблицы, найти в таблице значений строки с одинаковыми значениями, но разной датой, выбрать строку с максимальной,с меньшими удалить. В результате посмотреть, чтоб остались строки с одной - максимальной датой, если есть строки с датой меньшей максимальной -удалить. Таблица значений генерируется внешней системой.
|
|||
1
pilot_iv
28.12.12
✎
10:30
|
т.е на первом шаге сравниваем строки - если все одинаково,оставляем с максимальной датой остальные удаляем.
|
|||
2
Maxus43
28.12.12
✎
10:31
|
а почему не используя ВТ? достаточно непростой алгоритм будет, а запросом пару раз тыкнуть мышкой. Группиировка по всем полям и Макс по дате
|
|||
3
sidalexsandr
28.12.12
✎
10:33
|
Свернуть (GroupBy)
Синтаксис: Свернуть(<Колонки группировок>, <Колонки суммирования>) Параметры: <Колонки группировок> обязательный Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений. <Колонки суммирования> необязательный Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений. Описание: Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются. |
|||
4
Maxus43
28.12.12
✎
10:34
|
(3) где макс дата? только суммирование же
|
|||
5
pilot_iv
28.12.12
✎
10:34
|
в вт придется типизировать кучу полей
|
|||
6
Maxus43
28.12.12
✎
10:35
|
(5) щас не типизированы? всем "строку" тип сделай, кроме даты
|
|||
7
Maxus43
28.12.12
✎
10:36
|
Или юзай (3), сворачивай по всем кроме даты.
Потом в цикле обходи ТЗ_Новая, юзай ТЗ.НайтиСтроки и из них выбирай дату и записывай в ТЗ_Новая |
|||
8
newfantom
28.12.12
✎
10:41
|
Может, сортировать по дате
|
|||
9
Gesperid
28.12.12
✎
10:45
|
(0) сортируешь по значению и по дате, обходишь ТЗ в обратном порядке, по ходу удаляешь
|
|||
10
pilot_iv
28.12.12
✎
10:53
|
как это примерно должно в коде выглядеть (9)
|
|||
11
Maxus43
28.12.12
✎
10:56
|
(10) не прокатит так, тебе надо сравнить на все совпадающие колонки, чтоб понять дубль или нет, более правильно имхо (6)(7)
|
|||
12
Gesperid
28.12.12
✎
10:59
|
(11) он не сказал, что колонок со значением несколько, да и в этом случае решаемо
|
|||
13
Maxus43
28.12.12
✎
11:00
|
(12) говорил, и там их много что ппц, раз не хочет даже в ВТ сувать. Типизировать лень, а сравнивать кучу колонок с предыдущей записью ТЗ думаешь не лень будет?
|
|||
14
Gesperid
28.12.12
✎
11:02
|
(13) про ключевые поля слышал?
|
|||
15
Maxus43
28.12.12
✎
11:03
|
(14) я то слышал.
хз, пусть автор озвучит критерии номрально, я так понял что в (0) надо сравнивать абсолютно все столбцы, а дату только максимальную |
|||
16
Reset
28.12.12
✎
11:05
|
Из озвученных условий я бы делал (9).
Простейший однопроходный цикл |
|||
17
Reset
28.12.12
✎
11:05
|
Если столбцов несколько, это совершенно не затрудняет
|
|||
18
Maxus43
28.12.12
✎
11:06
|
(17) как будешь сравнивать с предыдущей строкой цикла? чтоб убрать дубль.
Мення бы не затруднило типизировать колонки вобще, и не изобретать велосипед |
|||
19
Reset
28.12.12
✎
11:09
|
(18)
Меня бы не затруднило завести переменную для хранения предыдущей строки, и не изобретать велосипед _Простейший_Цикл_ |
|||
20
Reset
28.12.12
✎
11:11
|
А если брать шире - то полученная автором таблица явно откуда-то получена (думаю из запроса). Вот такм заранее и отобрать как в (2)
|
|||
21
Maxus43
28.12.12
✎
11:11
|
(19) и потом сравнивать Если СтараяСтрока.Колонка1 = СтараяСтрока.Колонка1 И СтараяСтрока.Колонка2 = СтараяСтрока.Колонка2 И ... И СтараяСтрока.Колонка50 = СтараяСтрока.Колонка50 ?
|
|||
22
Reset
28.12.12
✎
11:11
|
(21) Да
|
|||
23
Reset
28.12.12
✎
11:12
|
(21) Ты тоже Если-ненавистник? :)
|
|||
24
Maxus43
28.12.12
✎
11:12
|
(22) неэстэтично на мой взгляд. запросы наше всё!
|
|||
25
Reset
28.12.12
✎
11:12
|
Долой язык 1С как класс ? :)
|
|||
26
Maxus43
28.12.12
✎
11:12
|
(23) да это номрально, если там не 82 сравнения
|
|||
27
Gesperid
28.12.12
✎
11:14
|
(21) ключевых полей, обычно, сильно меньше 50
|
|||
28
Reset
28.12.12
✎
11:15
|
(27) Если их больше или сравнимо, имхо нужно в консерватории править чтото, т.е. в алгоритме :)
|
|||
29
Maxus43
28.12.12
✎
11:15
|
(27) ждём автора, чего из пустого в порожнее)
в шаблонах есть даже конструкторы описания типов, Типизирование займёт мало времени |
|||
30
pilot_iv
28.12.12
✎
12:22
|
всем спасибо, проблему решил фактически просто через сортировку и удаление записей с меньшей датой
|
|||
31
pilot_iv
28.12.12
✎
12:22
|
т. е сортирую, из 1 строки получаю макс дату, потом сравниваю все строки на нее и с меньшими убираю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |